douyan2821
2019-02-15 04:03 阅读 126
已采纳

如何让CakePHP加载我的<project_root> / src目录而不是vendor / maiconpinto / cakephp-adminlte-theme / src

Summary:
I'm a web and backend newb, but basically I've inherited a CakePHP project and I'm trying to set up a dev environment. I'm trying to display my project-level src directory at http://localhost/backend/, which autoroutes to http://localhost/backend/admin/users/dashboard, but it only loads PROJECT_ROOT/vendor/maiconpinto/cakephp-adminlte-theme/src.

Question:
How do I load my own sidebar using my top-level src directory? Thanks in advance!
Here's the desired sidebar: correct myteamconnector sidebar
Here's the sidebar that is getting loaded: incorrect vendor files sidebar

Setup Info:
System: Mac OS 10.14 Dev Apps:

  • AMPPS v3.8
  • Apache v2.4.27
  • PHP v7.1
  • MySQL v5.6.37
  • CakePHP v3.5.17

PROJECT_ROOT/index.php:

require 'webroot' . DIRECTORY_SEPARATOR . 'index.php';

PROJECT_ROOT/webroot/index.php:

// Check platform requirements
require dirname(__DIR__) . '/config/requirements.php';

// For built-in server
if (php_sapi_name() === 'cli-server') {
    $_SERVER['PHP_SELF'] = '/' . basename(__FILE__);

    $url = parse_url(urldecode($_SERVER['REQUEST_URI']));
    $file = __DIR__ . $url['path'];
    if (strpos($url['path'], '..') === false && strpos($url['path'], '.') !== false && is_file($file)) {
        return false;
    }
}
require dirname(__DIR__) . '/vendor/autoload.php';

use App\Application;
use Cake\Http\Server;

// Bind your application to the server.
$server = new Server(new Application(dirname(__DIR__) . '/config'));

// Run the request/response through the application and emit the response.
$server->emit($server->run());
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

1条回答 默认 最新

  • 已采纳
    dongxikuo5171 dongxikuo5171 2019-03-08 16:53

    SOLVED The issue was that the composer.json file was specifying "maiconpinto/cakephp-adminlte-theme": "^1.0" and therefore installing v1.1.0 which requires different implementations depending on the cakephp version being < or >=3.5. So specifying "maiconpinto/cakephp-adminlte-theme": "1.0.8" in the composer.json file installed the previous version, which is compatible with the implementation in my repo. For some reason in the working version there was a mismatch between the composer.json file and the vendor folder (i.e. the vendor folder contained a bunch of plugins that the composer.json file didn't have) allowing everything to work as long as you didn't run composer update, which my coworker hadn't done.

    点赞 评论 复制链接分享

相关推荐