我现在做的事情与php + Symfony2框架,我有以下代码:
require_once("one_file.php");
require_once("another_file.php");
…等等。
问题是,如何"Symfonyze"这些不舒服的要求句子,然后,如何将这些文件包含在Symfony2包中?
我们考虑了两种可能性:
- 包含symfony的
/vendors
目录下的文件,或者 - 包括每个类作为一个服务。
如果这些类驻留在bundle中,那么你可以这样使用:假设你的bundle名为AcmeDemoBundle。把这个文件放到Acme/DemoBundle/Model/
目录下 //one_file.php
namespace Acme/DemoBundle/Model;
class one_file {
...........
}
在你的控制器或任何其他文件中使用这个文件:
这里为Acme/DemoBundle/Controller/UserController.php
namespace Acme/DemoBundle/Controller
use Acme/DemoBundle/Model/one_file
class UserController {
public $one_file=new one_file();
}
从php 5.3开始,引入了名称空间。php文档
您可以遵循PSR-0标准来让自动加载程序处理此问题。参见https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md和http://getcomposer.org/doc/04-schema.md#psr-0。
或者你可以保持你的文件原样,并告诉composer每次都需要它们:http://getcomposer.org/doc/04-schema.md#files
你必须在你的acme文件夹中创建一个文件夹,比如lib将这些文件放到lib文件夹中然后使用下面的语句
use AcmeDemoBundlelibAbc; // its your class name
您希望遵循这些其他答案,特别是经过批准的答案,但如果您使用的是带有大量PHP文件的第三方库,您可以使用require_once(__DIR__.'/path/to/file.php')
作为快速修复。