2016-11-15 12 views
-1

私のubuntuマシンでapt-getを使ってphp-symfony-routingをインストールしました。次のコードを実行しようとすると、以下のエラーメッセージが表示されました。php-symfony- * componentsのインストールと使用

<?php 
$routes = new \Symfony\Component\Routing\RouteCollection(); 

エラー:

PHP Fatal error: Uncaught Error: Class 'Symfony\Component\Routing\RouteCollection' not found in 

答えて

1

スクリプトは、そのクラスを見つける方法を知っていないため、エラーがあります。

この方法でライブラリをインストールすることはお勧めしません。

Symfony docsをご覧になり、Composerをご覧ください。

作成者が依存関係をインストールしたら、使用しているクラスの検索にスクリプトが使用するオートローダーを使用できます。

composer require symfony/routing 

上記のようにベンダーディレクトリが作成され、パッケージがインストールされます。また、使用するオートローダーを作成します。

<?php 
require 'vendor/autoload.php'; 

$routes = new \Symfony\Component\Routing\RouteCollection(); 

作曲の利点だけでなく、使用およびオートローダの容易さであるが、それはあなたがあなたのプロジェクトの依存関係のそれぞれを指定することができます。プロジェクトによって、異なるライブラリの異なるバージョンが必要になることがあります。他にもたくさんのものがありますが、それはこの質問の対象外です。

+0

私がしたかったのは、apt-getをインストールしてphp-symfony-routingを実行したときと、このアプローチを使って何か利点があるかを調べることでした。 – user2254602

+0

私はlibが以下のディレクトリ/ usr/share/php/Symfony/Component/Routingの下にインストールされているので、composer.json "/ usr/share/php/Symfony/Component/Routing/autoload.php "]私が尋ねたいことは、誰もがこのアプローチを試してきたかどうか、もしそうなら、彼が見つけた賛否両論は何か。 – user2254602

+0

作曲家の優位性が答えています。現在の方法でパッケージを使用するには、あなたのスクリプトに記述したautoload.phpへのパスが必要です。 aptメソッドの短所には、パッケージのメンテナが更新されるのを待つ必要があり、プロジェクトに必要な依存関係をマスクする必要があります。 – bcmcfc

関連する問題