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:
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());
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.