3

ZendFramework 1用のこのチュートリアルを見つけました。less をダウンロードして、 project/vendor/の下に置きます。

Leafo
└── Less
    ├── Lessc.php
    └── Lessify.php

project/module/Application/Module.php

...
public function onBootstrap(MvcEvent $e)
{
    ...
    $this->compileLess();
}
...
public function compileLess()
{
    if (APPLICATION_ENV == 'production') {
        return;
    }
    require_once PROJECT_PATH . '/vendor/Leafo/Less/Lessc.php';

    $less_file = PROJECT_PATH . '/public/less/style.less';
    $css_file = PROJECT_PATH . '/public/css/style.css';

    $lessc = new \Leafo\Less\Lessc($less_file);
    file_put_contents($css_file, $lessc->parse());
}

残念ながら、以下のエラーが表示されます

致命的なエラー: 53 行目の /Users/jslim/public_html/littlepinktree/module/Application/Module.php にクラス 'Leafo\Less\Lessc' が見つかりません

ここでいくつか質問があります。

  1. サードパーティ ライブラリを ZF2 に統合するにはどうすればよいですか (サードパーティ ライブラリが名前空間を使用していない場合)。
  2. LESSを ZF2に統合する方法を示す例はありますか?
4

2 に答える 2

0

Leafoオートローダーに名前空間を登録する必要があります。このツリーがあるとしましょう:

MyProject
└── vendor
        Leafo
        └── Less
            ├── Lessc.php
            └── Lessify.php

次のように名前空間を登録する必要があります。

    Zend\Loader\AutoloaderFactory::factory(array(
        'Zend\Loader\StandardAutoloader' => array(
            'autoregister_zf' => true,
            'namespaces' => array(
                'Leafo' => '/MyProject/vendor/Leafo',
            ),
        )
    ));

ZendSkeletonApplicationを使用している場合は、ファイルでこれを変更できinit_autoloader.phpます。

于 2013-04-16T12:33:27.283 に答える