Tag: 自动加载

自动加载来自不同文件夹的课程

这是我自动加载我的controllers文件夹中的所有类, # auto load controller classes function __autoload($class_name) { $filename = 'class_'.strtolower($class_name).'.php'; $file = AP_SITE.'controllers/'.$filename; if (file_exists($file) == false) { return false; } include ($file); } 但是我在models文件夹中也有类,我也想自动加载它们 – 我该怎么做? 我应该复制上面的自动加载,只是改变pathmodels/ (但不是这个重复??)? 谢谢。 编辑: 这些是我的控制器文件夹中的类文件名: class_controller_base.php class_factory.php etc 这些是我的模型文件夹中的类文件名: class_model_page.php class_model_parent.php etc 这是我通常命名我的控制器类的类(我使用下划线和lowcaps) class controller_base { … } class controller_factory { … } 这是我如何命名我的模型类类通常(我使用下划线和lowcaps), class model_page […]

使用Composer和autoload.php自动加载PHPUnit中的类

我刚刚通过composer phpSebastian Bergmann安装了PHPUnit版本3.7.19,并且写了一个我想unit testing的类。 我希望将所有的类自动加载到每个unit testing中, 而不必使用include或require在我的testing顶部,但是这certificate是困难的! 这是我的目录结构看起来像(后/斜线表示一个目录,而不是文件): composer.json composer.lock composer.phar LIB / returning.php testing/ returningTest.php 供应商/ 斌/ PHPUnit的 composer php/ PHPUnit的/ symfony的/ autoload.php 我的composer.json文件包含以下内容: "require": { "phpunit/phpunit": "3.7.*", "phpunit/phpunit-selenium": ">=1.2" } 我的returning.php类文件包含以下内容: <?php class Returning { public $var; function __construct(){ $this->var = 1; } } ?> 我的returningTest.phptesting文件包括以下内容: <?php class ReturningTest extends PHPUnit_Framework_TestCase { protected […]

使用Composer的自动加载

在这个问题上,我一直在寻找networking,没有运气。 我在composer.json中使用composer的自动加载代码: "autoload": { "psr-0": {"AppName": "src/"} } 但我需要自动加载比供应商文件夹更高的级别。 做这样的事情是行不通的: "autoload": { "psr-0": {"AppName": "../src/"} } 有谁知道一个修补程序,或者我怎么能做到这一点?

如何使用自动加载的PHP名称空间?

我尝试使用自动加载和命名空间时遇到此错误: 致命错误:第10行中的/usr/local/www/apache22/data/public/php5.3/test.php中找不到类“Class1” 谁能告诉我我做错了什么? 这是我的代码: Class1.php: <?php namespace Person\Barnes\David { class Class1 { public function __construct() { echo __CLASS__; } } } ?> test.php的: <?php function __autoload($class) { require $class . '.php'; } use Person\Barnes\David; $class = new Class1(); ?>

什么是自动加载; 你如何使用spl_autoload,__autoload和spl_autoload_register?

我正在学习高级PHP标准,并试图实现新的有用的方法。 之前我使用__autoload只是为了逃避包括每个页面上的多个文件,但最近我看到__autoload manual上的提示 spl_autoload_register()为自动加载类提供了更灵活的select。 出于这个原因,使用__autoload()是不鼓励的,将来可能会被弃用或删除。 但我真的不知道如何实现spl_autoload和spl_autoload_register

为什么使用PSR-0或PSR-4自动加载composer php如果classmap实际上更快?

我知道你可以使用PSR标准来定位文件,或者告诉composer php一个目录来扫描类。 文档build议使用PSR-4标准。 composer php还有一个选项来创build一个优化的自动加载器,它基本上可以生成一个完整的类图 。 那么为什么要使用PSR-4,如果最好的加载方式是使用类图呢? 保持目录结构对我来说是有意义的,因为这是一个很好的组织方式。 但是,似乎合乎逻辑的select是在开发机器上使用PSR-4,然后在生产环境中使用classmap。 这样,每次创build新类时都不必重新生成类映射,但是生产环境将创build一个完整的类作为部署过程的一部分,而无需额外的调用 ./composer.phar dump-autoload -o