1

ベンダーとモジュールを自動ロードするために、composer を使用してプロジェクト ローカルをセットアップしました。これは、Nginx を実行している Windows XP マシンで実行されます。

LAMPを実行している本番サーバーにすべてを同期すると、オートローダーが機能しなくなり、呼び出したすべてのクラスが見つかりません。

これは共有ホストであるため、composer.phar update を実行してクラスマップの名前空間を更新することはできません。

誰が何が起こっているのか知っていますか?

+情報:

<?php

// autoload_namespaces.php generated by Composer

$vendorDir = dirname(__DIR__);
$baseDir = dirname(dirname($vendorDir));

return array(
    'Zend\\' => $vendorDir . '/zendframework/zendframework/library/',
    'ZendTest\\' => $vendorDir . '/zendframework/zendframework/tests/',
    'Symfony\\Component\\Console' => $vendorDir . '/symfony/console/',
    'Doctrine\\ORM' => $vendorDir . '/doctrine/orm/lib/',
    'Doctrine\\DBAL' => $vendorDir . '/doctrine/dbal/lib/',
    'Doctrine\\Common' => $vendorDir . '/doctrine/common/lib/',
    'DoctrineORMModule\\' => $vendorDir . '/doctrine/doctrine-orm-module/src/',
    'DoctrineORMModuleTest\\' => $vendorDir . '/doctrine/doctrine-orm-module/tests/',
    'DoctrineModule\\' => $vendorDir . '/doctrine/doctrine-module/src/',
    'DoctrineModuleTest\\' => $vendorDir . '/doctrine/doctrine-module/tests/',
    'Application\\' => $baseDir . '/module/Application/src',
);



<?php

// autoload_classmap.php generated by Composer

$vendorDir = dirname(__DIR__);
$baseDir = dirname(dirname($vendorDir));

return array(
);

$loader が返されました:

Composer\Autoload\ClassLoader Object
(
    [prefixes:Composer\Autoload\ClassLoader:private] => Array
        (
            [Zend\] => Array
                (
                    [0] => /home/XXXX/public_html/vendor/zendframework/zendframework/library/
                )

            [ZendTest\] => Array
                (
                    [0] => /home/XXXX/public_html/vendor/zendframework/zendframework/tests/
                )

            [Symfony\Component\Console] => Array
                (
                    [0] => /home/XXXX/public_html/vendor/symfony/console/
                )

            [Doctrine\ORM] => Array
                (
                    [0] => /home/XXXX/public_html/vendor/doctrine/orm/lib/
                )

            [Doctrine\DBAL] => Array
                (
                    [0] => /home/XXXX/public_html/vendor/doctrine/dbal/lib/
                )

            [Doctrine\Common] => Array
                (
                    [0] => /home/XXXX/public_html/vendor/doctrine/common/lib/
                )

            [DoctrineORMModule\] => Array
                (
                    [0] => /home/XXXX/public_html/vendor/doctrine/doctrine-orm-module/src/
                )

            [DoctrineORMModuleTest\] => Array
                (
                    [0] => /home/XXXX/public_html/vendor/doctrine/doctrine-orm-module/tests/
                )

            [DoctrineModule\] => Array
                (
                    [0] => /home/XXXX/public_html/vendor/doctrine/doctrine-module/src/
                )

            [DoctrineModuleTest\] => Array
                (
                    [0] => /home/XXXX/public_html/vendor/doctrine/doctrine-module/tests/
                )

            [Application\] => Array
                (
                    [0] => /home/XXXX/public_html/module/Application/src
                )

        )

    [fallbackDirs:Composer\Autoload\ClassLoader:private] => Array
        (
        )

    [useIncludePath:Composer\Autoload\ClassLoader:private] => 
    [classMap:Composer\Autoload\ClassLoader:private] => Array
        (
        )

)

++情報:

spl_autoload_functions:

Array
(
    [0] => Array
        (
            [0] => Composer\Autoload\ClassLoader Object
                (
                    [prefixes:Composer\Autoload\ClassLoader:private] => Array
                        (
                            [Zend\] => Array
                                (
                                    [0] => /home/XXXX/public_html/vendor/zendframework/zendframework/library/
                                )

                            [ZendTest\] => Array
                                (
                                    [0] => /home/XXXX/public_html/vendor/zendframework/zendframework/tests/
                                )

                            [Symfony\Component\Console] => Array
                                (
                                    [0] => /home/XXXX/public_html/vendor/symfony/console/
                                )

                            [Doctrine\ORM] => Array
                                (
                                    [0] => /home/XXXX/public_html/vendor/doctrine/orm/lib/
                                )

                            [Doctrine\DBAL] => Array
                                (
                                    [0] => /home/XXXX/public_html/vendor/doctrine/dbal/lib/
                                )

                            [Doctrine\Common] => Array
                                (
                                    [0] => /home/XXXX/public_html/vendor/doctrine/common/lib/
                                )

                            [DoctrineORMModule\] => Array
                                (
                                    [0] => /home/XXXX/public_html/vendor/doctrine/doctrine-orm-module/src/
                                )

                            [DoctrineORMModuleTest\] => Array
                                (
                                    [0] => /home/XXXX/public_html/vendor/doctrine/doctrine-orm-module/tests/
                                )

                            [DoctrineModule\] => Array
                                (
                                    [0] => /home/XXXX/public_html/vendor/doctrine/doctrine-module/src/
                                )

                            [DoctrineModuleTest\] => Array
                                (
                                    [0] => /home/XXXX/public_html/vendor/doctrine/doctrine-module/tests/
                                )

                            [Application\] => Array
                                (
                                    [0] => /home/XXXX/public_html/module/Application/src
                                )

                        )

                    [fallbackDirs:Composer\Autoload\ClassLoader:private] => Array
                        (
                        )

                    [useIncludePath:Composer\Autoload\ClassLoader:private] => 
                    [classMap:Composer\Autoload\ClassLoader:private] => Array
                        (
                        )

                )

            [1] => loadClass
        )

)
4

1 に答える 1

1

解決策は、すべてのモジュールのオートローダーで、名前空間のすべての \ を / に置き換える str でした。

したがって、この:

public function getAutoloaderConfig() {
        return array(
            'Zend\Loader\StandardAutoloader' => array(
                'namespaces' => array(
                    __NAMESPACE__ => __DIR__ . '/src/' . str_replace('\\', '/', __NAMESPACE__),
                ),
            ),
        );
    }

LAMPマシンで意図したとおりにすべてが機能します。

于 2013-02-22T15:59:55.213 に答える