Я использовал CakePHP некоторое время, и я до сих пор не понимаю, что должно быть в /Lib
vs /Plugin
vs /Vendor
. Я знаю, что плагины - это в основном мини-приложения с их собственными контроллерами и т.д. Но есть много ситуаций, когда все три кажутся подходящими опциями. Может ли кто-то пролить свет на это?
CakePHP: что нужно делать /Lib vs/Vendor vs/Plugin
Ответ 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()
.