我现在用php + Symfony2框架制作东西,我有以下代码:
require_once("one_file.php");
require_once("another_file.php");
......等等。
问题是,如何“Symfonyze”这些不舒服的需要句子,以及如何将这些文件包含在Symfony2包中?
我们考虑过两种可能性:
/vendors
目录中,或答案 0 :(得分:5)
如果这些类驻留在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文档中的用法
答案 1 :(得分:2)
您可以按照PSR-0标准让自动加载器处理此问题。请参阅https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md和http://getcomposer.org/doc/04-schema.md#psr-0。
或者您可以按原样保存文件,并告诉作曲家每次都要求他们:http://getcomposer.org/doc/04-schema.md#files
答案 2 :(得分:1)
你必须在acme文件夹中创建一个文件夹,比如lib将这些文件放在lib文件夹中然后使用这个语句
use Acme\DemoBundle\lib\Abc; // its your class name
答案 3 :(得分:1)
您希望遵循这些其他答案,尤其是已批准的答案,但如果您使用的是包含大量PHP文件的第三方库,则可以require_once(__DIR__.'/path/to/file.php')
作为快速修复。