在我的ubuntu机器上安装和使用php-symfony- *组件

问题描述:

我已经使用apt-get安装了php-symfony-routing。当我试图运行下面的代码时,出现下面的错误消息。在我的ubuntu机器上安装和使用php-symfony- *组件

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

错误:

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

的错误是因为脚本不知道如何找到类。

我不会推荐以这种方式安装库。

看看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“]我想问什么,有没有人尝试过这种方法,如果有的话,他发现什么是prons和cons。 – user2254602

+0

作曲家的优势在于答案。要按照您当前拥有的方式使用软件包,需要使用刚才在脚本中提到的autoload.php路径。 apt方法的缺点包括不得不等待程序包维护人员进行更新,并且屏蔽了项目所需的依赖关系。 – bcmcfc