【发布时间】:2018-06-29 05:23:03
【问题描述】:
从 composer Install,我得到了比旧 Zend/Libeary 更新的版本,但得到了这个错误: atal 错误:未捕获 Zend\ServiceManager\Exception\ServiceNotFoundException:无法将服务“路由器”解析为工厂;你确定你在配置过程中提供了它吗?在 /home/azureuser/nginad/upload/vendor/zendframework/zend-servicemanager/src/ServiceManager.php:687 堆栈跟踪:#0 /home/azureuser/nginad/upload/vendor/zendframework/zend-servicemanager/src/ServiceManager .php(763): Zend\ServiceManager\ServiceManager->getFactory('Router') #1 /home/azureuser/nginad/upload/vendor/zendframework/zend-servicemanager/src/ServiceManager.php(200): Zend\ServiceManager \ServiceManager->doCreate('Router') #2 /home/azureuser/nginad/upload/vendor/zendframework/zend-mvc/src/Application.php(158): Zend\ServiceManager\ServiceManager->get('Router' ) #3 /home/azureuser/nginad/upload/vendor/zendframework/zend-mvc/src/Application.php(273): Zend\Mvc\Application->bootstrap(Array) #4 /home/azureuser/nginad/upload /public/index.php(28): Zend\Mvc\Application::init(Array) #5 {main} 抛出 /home/azureuser/nginad/upload/vendor/zendframework/zend-servicemanager/src/ServiceManager.php在第 687 行
这是安装在 public 下的文件夹
Vendor
Zendframework
Zend-Mvc
src
...
如何将路由器添加到配置中? 这是我安装的:
【问题讨论】:
-
我认为您正在尝试通过
use语句提供其他类,并以Application为例?阅读autoloading classes with composer。然后在public/index.php文件中找到require '/../vendor/autoload.php行;-) gl & hf -
您链接的 composer.json 文件属于 Zend Framework 2 项目,该项目在 2 年内未更新。你确定这是正确的项目吗?从Zend Skeleton Application 开始。查看
public/index.php文件和composer.json文件(请参阅该文件中的PSR-4条目)。接下来,有一个read through this 的 PHP 命名空间。这应该让你开始“让它发挥作用”。如果您仍然需要帮助,我会提出一个新问题。 -
另外,使用 Zend Skeleton 应用程序:tutorials here。他们没有一切,但他们包含很多信息来帮助你快速启动和运行'ish ;-)
-
好的,为您创建了一个答案,解释了使用 Composer 设置项目。真的只是基础知识,但请阅读,获取文档并尝试一下。有关 PHP 中“命名空间”的用法、方式和内容,请创建另一个问题,但请阅读我发送给您的链接。可能需要大量阅读和学习,但这是值得的。在当今的 PHP 世界中需要了解它。
标签: php zend-framework2 zend-framework3