Как заставить CakePHP загружать мой каталог ‹project_root›/src вместо vendor/maiconpinto/cakephp-adminlte-theme/src

Резюме:
Я новичок в Интернете и бэкэнде, но в основном я унаследовал проект CakePHP и пытаюсь настроить среду разработки. Я пытаюсь отобразить каталог src на уровне проекта по адресу http://localhost/backend/, который автоматически перенаправляется на http://localhost/backend/admin/users/dashboard, но он загружает только PROJECT_ROOT/vendor/maiconpinto/cakephp-adminlte-theme/src.

Вопрос.
Как загрузить собственную боковую панель, используя каталог src верхнего уровня? Заранее спасибо!
Вот желаемая боковая панель: правильная боковая панель myteamconnector
Вот боковая панель, которая загружается: неправильная боковая панель файлов поставщиков

Информация об установке:
Система: Mac OS 10.14 Dev Приложения:

  • AMPPS v3.8
  • Апач 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());

person Pete    schedule 15.02.2019    source источник
comment
Ваша первая проблема заключается в том, что вы на самом деле не хотите загружать папку src. В папке webroot должен быть index.php, который позаботится обо всем, что вам нужно для правильной ссылки на реализацию, найденную в src. Другими словами, укажите корень документа вашего веб-сервера на папку webroot, и вы должны быть на правильном пути.   -  person Greg Schmidt    schedule 15.02.2019
comment
Хм. В этом есть смысл. Спасибо за ответ. Я добавил содержимое index.php и webroot/index.php в свой пост. Строка о привязке моего приложения указывает на мой каталог config, поэтому я не уверен, что бы я изменил, но я, очевидно, все еще упускаю что-то важное.   -  person Pete    schedule 15.02.2019
comment
Когда он привязывает приложение, он передает каталог конфигурации, чтобы знать, откуда загружать bootstrap.php. Все это выглядит совершенно правильно. Корень документа вашего сервера указывает на папку webroot, он все еще не работает? А если нет, пожалуйста, включите более подробную информацию о том, что означает «не работает», и убедитесь, что в вашем config/app.php debug установлено значение true, чтобы вы получали максимальные отчеты об ошибках.   -  person Greg Schmidt    schedule 15.02.2019
comment
Я добавил изображения боковой панели, которая не загружается. Чтобы быть более точным, похоже, что какой-то контент загружается, но левая боковая панель неверна. Он просто показывает кое-что по умолчанию из vendor/, но должен показывать боковую панель, которую я вижу в живом приложении на myteamconnector.com. debug установлено значение true в моем config/app.php. Извините, что не все здесь понял.   -  person Pete    schedule 15.02.2019
comment
Вам нужно будет найти место в вашем коде, которое добавляет боковую панель. Вероятно, он меньше src/Template/Layout/default.ctp, хотя может быть и vendor/maiconpinto/src/Template/Layout/default.ctp. Есть много способов сделать это, так много способов сделать это неправильно. Тем не менее, просмотр вашего окружения и конфигурации не помогает решить эту проблему, и все это может просто отключить людей, которые в противном случае могли бы помочь.   -  person Greg Schmidt    schedule 15.02.2019
comment
Спасибо! Я посмотрю на этот материал и опубликую, когда узнаю больше.   -  person Pete    schedule 16.02.2019
comment
Итак, кажется, что самая важная информация заключается в том, что мой коллега использует идентичную песочницу репо, ту же версию и настройки MAMP, что и его работы. Значит, должна быть какая-то конфигурация в системе, которая отличается?   -  person Pete    schedule 08.03.2019


Ответы (1)


РЕШЕНО Проблема заключалась в том, что файл composer.json указывал "maiconpinto/cakephp-adminlte-theme": "^1.0" и, следовательно, устанавливал версию 1.1.0, которая требует разных реализаций в зависимости от версии cakephp, равной ‹ или> = 3.5. Таким образом, указание "maiconpinto/cakephp-adminlte-theme": "1.0.8" в файле composer.json установило предыдущую версию, которая совместима с реализацией в моем репозитории. По какой-то причине в рабочей версии было несоответствие между файлом composer.json и папкой поставщика (т.е. папка поставщика содержала кучу плагинов, которых не было в файле composer.json), что позволяло все работать до тех пор, пока вы не запускал обновление композитора, чего не делал мой коллега.

person Pete    schedule 08.03.2019