我将在PHP中进行从小到大的项目。我想了解如何建立一个非常新的项目,而不必担心包括东西。我不想用骷髅。我肯定会使用Zend Framework 3+。我想使用Zend的自动加载器或Composer的自动加载器。但不要把它们弄混。
因此,我们的梦想是让以下代码能够在客户端可能请求的任何脚本中找到任何类或函数:
<?php
$adapter = new Zend_Db_Adapter_Mysqli("", "", "", "");
// ...
$str = randomString(); // function from "myUtils.php"
?>
所以问题是,如何正确设置其中一个自动加载器?它们是如何工作的?你能让初学者理解吗?我正在使用IIS,我的本地根文件夹是C:inetpubwwwroot
。正如你所猜测的,我在网络开发方面没有太多经验。
如果您使用ZF3,您将永远不会调用像new Zend_Db_Adapter_Mysqli()
这样的类,您将使用像new ZendDbAdapterMysqli()
这样的名称空间。
ZF3的自动加载默认情况下只能由composer进行。因此,您需要使用它来自动加载模块。如果您在ZF之外创建自己的项目并希望自己实现自动加载,则使用ZendLoader
模块。但这似乎不是你想做的
虽然Zend Framework通过其Zend加载器组件提供自动加载功能,但我们建议使用Composer的自动加载功能。
您将模块的名称空间添加到composer.json
中,其他一切都将自动处理。要将其中一个模块添加到composer的自动加载中,您可以在ZF3项目的根目录中创建一个composer.json
。然后为您的模块添加一个配置条目:
"autoload": {
"psr-4": {
"YourModuleNamespace\": "module/PathToMyModule/src/",
"AnotherModule\": "module/AnotherModule/src/"
}
},
更改composer.json
后,应通过执行命令composer dump
或composer dump-autoload
重新生成自动加载配置。
有关模块和自动加载的更多详细信息,请参阅ZF3官方文档。