Я разработал небольшой проект на машине с использованием CakePHP 3.0, и мне нужно, чтобы он работал на другой машине. Я пытался установить его на нескольких других машинах.
Если я бегу composer
чтобы установить CakePHP 3.0, затем я копирую свои материалы, чтобы перезаписать их, проект работает. Я пробовал это на двух машинах и без проблем до сих пор. Если я не запускаю composer
и просто скопировать материал на целевой компьютер, это дает мне следующую ошибку. Я пробовал это на 3 машинах, и каждая машина дает мне это:
Fatal error: Class 'Locale' not found in /home/u113681897/public_html/vendor/cakephp/cakephp/src/I18n/I18n.php on line 229
Fatal error: Class 'Locale' not found in /home/u113681897/public_html/vendor/cakephp/cakephp/src/I18n/I18n.php on line 229
Я скопировал весь проект в этот сервер тестировать.
Я сказал вам это, потому что думал, что это как-то связано с моей проблемой. Дело в том, что я должен запустить это на машине, которая не принадлежит мне, и я не могу установить на нее композитор. /public_html/vendor/cakephp/cakephp/src/I18n/
У меня есть файлы, связанные с интернационализацией и локализацией, но мой проект никогда не будет переведен, поэтому для решения моей проблемы будет достаточно обходного пути, чтобы заставить проект игнорировать эти файлы.
Следующий код является выдержкой из (...)/I18n/I18n.php
это может быть актуально:
<?php
namespace Cake\I18n;
use Aura\Intl\FormatterLocator;
use Aura\Intl\PackageLocator;
use Aura\Intl\TranslatorFactory;
use Cake\I18n\Formatter\IcuFormatter;
use Cake\I18n\Formatter\SprintfFormatter;
use Locale;
class I18n {
// lots of code here
public static function defaultLocale() {
if (static::$_defaultLocale === null) {
static::$_defaultLocale = Locale::getDefault() ?: 'en_US';
// the line above is the Line 229
}
return static::$_defaultLocale;
}
// many code here too
}
Я проверил, что другой файл также пытается получить доступ к этому Locale
класс, но я не знаю, есть ли другие файлы, пытающиеся получить к нему доступ. Многие файлы изнутри проекта пытаются получить доступ к методам из I18n.php
, Мне нужно, чтобы он работал, но я не могу понять, как заставить его работать.
Любая помощь будет оценена.
Как я только что узнал, до CakePHP 3.0
установка должна быть сделана composer
, как указано в 3.0 руководство по миграции:
CakePHP должен быть установлен с Composer Поскольку CakePHP больше не может быть легко установлен через PEAR или в общий каталог, эти параметры больше не поддерживаются. Вместо этого вы должны использовать Composer для установки CakePHP в ваше приложение.
Так что он не будет работать на обычных бесплатных веб-хостингах.
Других решений пока нет …