Kohana 3.3 прописные / строчные буквы

Я только что переместил свой проект, созданный на Kohana3.3, из Windows в Ubuntu (локальный сервер), и он перестал работать. Я считаю, что проблема заключается в прописных / строчных буквах (для Table.__ или Model_ они не существуют).

Мне нужно объяснение имен файлов в верхнем и нижнем регистре и классов.

Что я нашел, так это вопрос: Kohana 3.3 Не работает из подкаталога:

Kohana 3.3 добавляет частичную поддержку стандарта PSR-0 PHP Framework Interop Group. Разработчикам фреймворка PHP рекомендуется следовать этому стандарту, чтобы упростить взаимодействие между фреймворками. Одним из требований PSR-0 является то, что имена классов и имена файлов совпадают.

Кроме того, я вижу, что папка Controller в Kohana3.3 начинается с заглавной буквы C (не как в 3.2). Кроме того, файл Welcome.php начинается с W (не как в 3.2).

Итак, мои простые вопросы по Kohana3.3:

Должна ли папка Model начинаться с заглавной буквы?

Должны ли все файлы контроллера начинаться с заглавной буквы?

Должны ли все файлы модели в папке Model начинаться с заглавной буквы?

Должен ли я написать ORM::factory('Capital'), но не ORM:: factory ('Capital')?

А как насчет папки просмотра: это просмотр или просмотр?

Я прочитал несколько примеров для Kohana, но из того, что я нашел, я сомневаюсь, что это для 3.3.

Кроме того, мой вопрос: почему он работал под Windows?

1 ответ

Решение

Вы можете понять большую часть этого, просто читая документацию и / или просто экспериментируя и видя, что работает, а что нет.

Короче говоря, в PSR-0 имена файлов должны совпадать с именами классов. Итак, если вы вызываете класс с именем Penguins_CanNot_Fly тогда имя файла должно быть точно Penguins/CanNot/Fly.php,

В Linux имена файлов чувствительны к регистру. Так, File.txt а также file.txt два разных файла. В Windows, однако, два файла считаются одним и тем же файлом (это потому, что в Windows регистр не учитывается). Это означает, что PSR-0 не работает должным образом в Windows, если вы не измените автозагрузчик для проверки точного пути к файлу.

Что касается ORM, да, вы должны иметь в виду, что модели должны быть чувствительными к регистру. ORM::factory('Blog') а также ORM::factory('blog') загрузит разные модели, но будет использоваться одна и та же таблица.

Другие вопросы по тегам