Cakephp 3 дает мне Фатальную ошибку: Uncaught Ошибка: класс ‘Cake \ Http \ Server’ не найден

Я выполнил обновление cakephp 2 до cakephp 3, и это вызывало проблемы, поэтому я обнаружил, что мне пришлось заменить app / webroot новым набором файлов, которые были частью скелета cakephp 3, но теперь я получаю эту ошибку :

Fatal error: Uncaught Error: Class 'Cake\Http\Server' not found in /usr/share/nginx/html/web/app/webroot/index.php:33 Stack trace: #0 /usr/share/nginx/html/web/index.php(47): require() #1 {main} thrown in /usr/share/nginx/html/web/app/webroot/index.php on line 33

После некоторых исследований я нашел эту страницу: https://api.cakephp.org/3.3/, который показывает классы, которые должны быть доступны, и я обнаружил, что если я пойду к my_cake_project/web/lib/Cake и беги ls Я получил:

basics.php bootstrap.php config Настройка контроллера Ошибка I18n Журнал Сеть src тесты Просмотр служебной программы
Базовое событие консоли конфигурации bin Cache LICENSE.txt Тест маршрутизации модели TestSuite VERSION.txt

Но мне не хватает нескольких библиотек, которые должны быть в CakePHP 3, включая папку Http, и я считаю, что именно поэтому Cake / Http / Server не найден.

Я отследил строку, которая вызывает ошибку к этому:

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

Это в app / webroot / index.php.

Я попытался разделить это до:

$a = new Application(dirname(__DIR__) . '/config');
$server = new Server($a);

только для тестирования, и я обнаружил, что это также говорит о том, что Class Application не может быть найден.

Это весь файл app / webroot / index.php, который у меня есть:

<?php
/**
* The Front Controller for handling every request
*
* CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
* Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
*
* Licensed under The MIT License
* For full copyright and license information, please see the LICENSE.txt
* Redistributions of files must retain the above copyright notice.
*
* @copyright     Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
* @link          http://cakephp.org CakePHP(tm) Project
* @since         0.2.9
* @license       MIT License (http://www.opensource.org/licenses/mit-license.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(dirname(__DIR__)) . '/vendors/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());

Так что я должен пропустить файл для класса приложения тоже

И на основе сравнения того, что я имею в lib/Cake папка с https://api.cakephp.org/3.3/ Я пропустил кучу папок CakePHP.

Кажется, я скучаю не только Http, но также:

`Auth`, `Collection`, `Database`, `Datasource`, `Filesystem`, `Form`, `Mailer`, `ORM`, `Shell`, `Utility`, and `Validation`

Почему я пропускаю их ?, и где или как я могу найти и установить все недостающие библиотеки в мое приложение cakephp?

2

Решение

Вы не загрузили все зависимости в папку поставщика.
Я использовал консоль OpenServer в Windows и
php composer.phar update было полезно для меня (раньше я устанавливал composer локально в свой проект).
На мой взгляд, это произошло потому, что вы установили экземпляр фреймворка без прав администратора.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]