- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个遗留应用程序,它使用 spl_autload
来加载类(它们没有命名空间)
<?php
spl_autoload_extensions('.class.php,.php');
set_include_path(
$listOfDir
);
spl_autoload_register();
// require composer autoloader
// can't place that line before the call spl_autoload_register without breaking everything.
require __DIR__ . "/../vendor/autoload.php";
我们最近引入了 composer 和 Symfony container
、dependency-injection
和 config
组件。
我试图实现的是通过 composer 加载驼峰命名法类(所有新类都使用驼峰命名法来识别新代码与遗留代码)而不会导致 BC 中断。
您是否有关于如何让它工作的线索?新类必须有命名空间吗?
PS:新类(class)将分布在 “大量” 文件夹中。项目规模为700k LOC。
最佳答案
所以我所做的是将新类放入 src/
文件夹,添加命名空间并在 composer.json 中添加 PSR-4
。
因为 spl_autoload 不适用于驼峰式类,所以我可以接受。 :-)
"autoload": {
"psr-4": {
"MyNamespace\\NotLegacy\\": "src/"
}
}
关于php - 共存 spl_autoload_register 和 composer autoload,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31458450/
我正在尝试利用 PHP 中的自动加载。我在不同的目录中有各种类,所以我引导自动加载如下: function autoload_services($class_name) { $file = '
我发现了几个与我类似的 SO 问题,但我正在努力寻找对我有帮助的答案,而且我真的很想知道自动加载命名空间中存在的类的最佳实践。 我的文件夹结构: root -- classes --- Users -
为什么会返回 fatal error :Class 'Mynamespace\String' not found in ...: set_include_path(get_include_path()
我有一个文件可以自动加载我的每个类。 这是它包含的内容: spl_autoload_register(function($class){ require_once 'classes/' . $
我正在尝试使用 spl_autoload_register 将实例化对象用作自动加载器。是否可以?我在几个地方看到人们使用类静态函数作为自动加载器,而不是对象。 例子: class loadFile{
我想关于 spl_autoload_register() 优于 autoload() 的优点,我想我缺少了一些东西。据我了解,spl_autoload_register() 的优点是它可以注册多次,然
我使用composer管理我的依赖项和类加载。该工具使用spl_autoload_register函数。 我想使用 PHP 扩展来提供一些与通过 Composer 定义的其他类相同的定义(名称、命名空
这段代码: 抛出这个错误: Fatal error: Uncaught exception 'LogicException' with message 'Function 'autoloader'
我让 spl_autoload_register 工作正常,但后来我决定添加一些命名空间以引入 PSR2 合规性,但似乎无法让它工作。 目录结构: -index.php -classes/ -Cl
我想在我正在开发的 wordpress 插件中通过 spl_autoload_register 使用类的动态加载,但问题是它不能干扰此功能的预先存在的实现。在我最初的尝试中: // register
我正在使用 spl_autoload_register为了加载类。 我有一个 index.php 文件,其中包含一个 init.php 文件。 spl_autoload_register函数在init
我在主目录中创建了 5 个文件夹,其中包含 5 个类(Ad_Class、Blocked_Class、Friend_Class、Image_Class、Profile_Class)。我还在提到的文件夹中
拥有多个spl_autoload_register的好处是什么 例子: spl_autoload_register('autoload_systems'); spl_autoload_register
class Manage { spl_autoload_register(function($class) { include $class . '.class.php'; }); } 假设我
这个问题在这里已经有了答案: 10年前关闭。 Possible Duplicate: unexpected T_FUNCTION with php 5.2.17 but fine on localho
use PHPMailer\PHPMailer\PHPMailer; require_once "PHPMailer/PHPMailer.php"; $mail = new PHPMailer(t
我的目录结构如下 > Root > -Admin // admin area > --index.php // admin landing page, it includes ../config.ph
我正在开发自定义框架。当我尝试动态化我的类(class)调用时遇到了一个问题。 这是我的文件的视觉效果: 所以我决定为每个文件夹(库、 Controller 和模型)创建一个不同的函数: functi
我一直在阅读关于 spl_autoload_register 函数作为 require、require_once、include 和 & 包含一次。尽管有很多关于如何实现这一点的讨论,但文档并不太详细
所以我之前已经在这里问过这个问题,但是提供的解决方案对我不起作用。这是我的设置: /mylib /Vendor/Module/MyClass.php /document_root in
我是一名优秀的程序员,十分优秀!