Подтвердить что ты не робот

CakePHP: что нужно делать /Lib vs/Vendor vs/Plugin

Я использовал CakePHP некоторое время, и я до сих пор не понимаю, что должно быть в /Lib vs /Plugin vs /Vendor. Я знаю, что плагины - это в основном мини-приложения с их собственными контроллерами и т.д. Но есть много ситуаций, когда все три кажутся подходящими опциями. Может ли кто-то пролить свет на это?

4b9b3361

Ответ 1

Lib

Содержит 1-ю партийные библиотеки, которые не поступают от третьих сторон или внешних поставщиков. Это позволяет отделить ваши организации внутренние библиотеки из библиотек поставщиков.

Plugin

Содержит plugin пакеты.

Vendor

Здесь должны быть размещены любые сторонние классы или библиотеки. Это позволяет им легко получить доступ, используя App:: import ( "поставщик", 'Name). Острые наблюдатели заметят, что это кажется излишним, так как есть папка поставщиков на верхнем уровне нашего каталога состав. Хорошо вникайте в различия между ними, когда мы обсудить управление несколькими приложениями и более сложные настройки системы.

Источник: http://book.cakephp.org/2.0/en/getting-started/cakephp-folder-structure.html

Чтобы уточнить, Lib рекомендуется для библиотек, которые вы пишете сами. Это может быть просто несколько классов или целых библиотек. Vendor рекомендуется для библиотек или скриптов, которые вы можете загрузить, например, из github. Plugin предназначен только для плагинов фреймов cakephp.

Относительно Lib vs Vendor для ваших собственных скриптов или сторонних скриптов нет никакой разницы, о которой я знаю. Я поместил свои собственные скрипты как в сторонних сценариях, так и в сторонних сценариях, и это не имеет никакого значения. Это просто рекомендуемый способ организации ваших файлов.

Вы можете загрузить свои скрипты из Lib или Vendor с помощью App::import(), который совпадает с require_once(). Для загрузки файлов фреймворка или собственных сценариев, которые следуют соглашениям cakephp, вы должны использовать App::uses(). Для поиска файлов используются пути, определенные с помощью App::path() или App::build().