【问题标题】:How to run cakephp 3 project placed inside the cakephp 3 project webroot如何运行放置在 cakephp 3 项目 webroot 中的 cakephp 3 项目
【发布时间】:2018-08-07 07:52:28
【问题描述】:

我想运行放置在 cakephp3 项目 webroot 中的 cakephp3 项目

/example.com/
  bin/
  config/
  logs/
  plugins/
  src/
  tests/
  tmp/
  vendor/
  webroot/ 
     /uat/ (this is another project placed inside webroot)
       bin/
       config/
       logs/
       plugins/
       src/
       tests/
       tmp/
       vendor/
       webroot/ 
       ...
       ...
       ...
  .gitignore
  .htaccess
  .travis.yml
  composer.json
  index.php
  phpunit.xml.dist
  README.md

我正在尝试使用地址https://example.com/uat/index.php 访问另一个项目,但它会抛出错误:-

未找到 Uat 类

2018-08-07 12:54:53 Error: [Cake\Routing\Exception\MissingControllerException] Controller class Uat could not be found.
Request URL: /uat/index.php
Stack Trace:
#0 /home/corpveda/public_html/vendor/cakephp/cakephp/src/Http/ControllerFactory.php(72): Cake\Http\ControllerFactory->missingController(Object(Cake\Network\Request))
#1 /home/corpveda/public_html/vendor/cakephp/cakephp/src/Http/ActionDispatcher.php(93): Cake\Http\ControllerFactory->create(Object(Cake\Network\Request), Object(Cake\Network\Response))
#2 /home/corpveda/public_html/vendor/cakephp/cakephp/src/Http/BaseApplication.php(83): Cake\Http\ActionDispatcher->dispatch(Object(Cake\Network\Request), Object(Cake\Network\Response))
#3 /home/corpveda/public_html/vendor/cakephp/cakephp/src/Http/Runner.php(65): Cake\Http\BaseApplication->__invoke(Object(Zend\Diactoros\ServerRequest), Object(Zend\Diactoros\Response), Object(Cake\Http\Runner))
#4 /home/corpveda/public_html/vendor/cakephp/cakephp/src/Routing/Middleware/RoutingMiddleware.php(62): Cake\Http\Runner->__invoke(Object(Zend\Diactoros\ServerRequest), Object(Zend\Diactoros\Response))
#5 /home/corpveda/public_html/vendor/cakephp/cakephp/src/Http/Runner.php(65): Cake\Routing\Middleware\RoutingMiddleware->__invoke(Object(Zend\Diactoros\ServerRequest), Object(Zend\Diactoros\Response), Object(Cake\Http\Runner))
#6 /home/corpveda/public_html/vendor/cakephp/cakephp/src/Routing/Middleware/AssetMiddleware.php(93): Cake\Http\Runner->__invoke(Object(Zend\Diactoros\ServerRequest), Object(Zend\Diactoros\Response))
#7 /home/corpveda/public_html/vendor/cakephp/cakephp/src/Http/Runner.php(65): Cake\Routing\Middleware\AssetMiddleware->__invoke(Object(Zend\Diactoros\ServerRequest), Object(Zend\Diactoros\Response), Object(Cake\Http\Runner))
#8 /home/corpveda/public_html/vendor/cakephp/cakephp/src/Error/Middleware/ErrorHandlerMiddleware.php(81): Cake\Http\Runner->__invoke(Object(Zend\Diactoros\ServerRequest), Object(Zend\Diactoros\Response))
#9 /home/corpveda/public_html/vendor/cakephp/cakephp/src/Http/Runner.php(65): Cake\Error\Middleware\ErrorHandlerMiddleware->__invoke(Object(Zend\Diactoros\ServerRequest), Object(Zend\Diactoros\Response), Object(Cake\Http\Runner))
#10 /home/corpveda/public_html/vendor/cakephp/cakephp/src/Http/Runner.php(51): Cake\Http\Runner->__invoke(Object(Zend\Diactoros\ServerRequest), Object(Zend\Diactoros\Response))
#11 /home/corpveda/public_html/vendor/cakephp/cakephp/src/Http/Server.php(92): Cake\Http\Runner->run(Object(Cake\Http\MiddlewareQueue), Object(Zend\Diactoros\ServerRequest), Object(Zend\Diactoros\Response))
#12 /home/corpveda/public_html/webroot/index.php(37): Cake\Http\Server->run()
#13 {main}

这是为我们的团队设置 UAT 服务器所必需的,我还尝试了一些来自 google 的示例,方法是修改 webroot 文件夹中的 .htaccess 文件以使其工作,但它抛出每次都出现同样的错误。

【问题讨论】:

  • 尝试其他项目作为插件
  • 我不确定这是否可行,但正如@Salines 所说,您可以通过创建一个或多个插件来满足您的需求,因为它们基本上是您主应用程序中的独立迷你应用程序。 Creating Your Own Plugins
  • 感谢 #Salines 和 #BadHorsie 的建议,我会尝试这些步骤并测试它是否有效。

标签: cakephp cakephp-3.0 cakephp-3.x


【解决方案1】:

我认为这是你最好的选择:https://book.cakephp.org/3.0/en/plugins.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-12
    • 2013-07-01
    • 1970-01-01
    相关资源
    最近更新 更多