Вы хотите, чтобы PHP -каркас, усыпанный местным пиратским Lingo?
Это будет самая голая кости в семи морях!
http://bonemvc.delboysplace.co.uk
Кость теперь будь на v3.x! Весь корабль Deign O 'Th' был упорядочен и был бы гораздо более маневренным! Мы будем использовать контейнер впрыскивания зависимости PSR-11, в сочетании с маршрутизатором промежуточного программного обеспечения PSR-15, модульным образом! Прыгай на борту!
Сначала убедитесь, что у вас есть композитор! Затем установите кость.
composer create-project delboy1978uk/bonemvc your/path/here
или если вы не установили композитор по всему миру ...
php composer.phar create-project delboy1978uk/bonemvc your/path/here
См. Ниже для получения информации о том, как получить полный сервер Dev с помощью Docker
Вы можете оставить любое количество файлов .php в папку Config/. Убедитесь, что они возвращают массив с конфигурацией. Вы можете переопределить конфигурацию на основе среды var application_env, поэтому, например, если бы среда была производством, она загрузила бы дополнительную конфигурацию в подкаталог для производства.
По умолчанию есть несколько файлов конфигурации:
db.php
i18n.php
logs.php
mail.php
routes.php
templates.php
В ваших файлах конфигурации вы можете добавить все, что захотите. Он хранится в реестре кости MVC .
Установите свои учетные данные DB по умолчанию в основной конфигурации/db.php и любые конкретные конфигурации среды в подкаталоге
' db ' => array (
' host ' => ' 127.0.0.1 ' ,
' database ' => ' bone ' ,
' user ' => ' leChuck ' ,
' pass ' => ' bigWh00p ' ,
),Затем в вашем контроллере вы можете получить соединение PDO, сказав:
$ this -> getDbAdapter (); Кость поддерживает перевод в разные локалы. Файлы перевода (getText .po и .mo ) должны быть размещены в data/translations под подкаталогом локали, например, data/translations/en_GB/en_GB.po . Вы можете установить локаль по умолчанию и множество поддерживаемых локалов.
<?php
use Zend I18n Translator Loader Gettext ;
return [
' i18n ' => [
' translations_dir ' => ' data/translations ' ,
' type ' => Gettext::class,
' default_locale ' => ' en_PI ' ,
' supported_locales ' => [ ' en_PI ' , ' en_GB ' , ' nl_BE ' , ' fr_BE ' ],
],
];Чтобы использовать переводчик, вы можете просто позвонить: чтобы использовать переводчика, вы можете просто позвонить:
<?php
// from a controller:
$ this -> getTranslator ()-> translate ( ' placeholder.string ' );
// to set locale
$ this -> getTranslator ()-> setLocale ( $ locale );
// from a view file:
$ this -> t ( ' placeholder ' );Кость использует монолог/монолог, а журналы можно найти в данных/журналах. В настоящее время мы поддерживаем только написание файлов, но вы можете добавить столько каналов, сколько вам нравятся:
<?php
return [
' log ' => [
' channels ' => [
' default ' => ' data/logs/default_log ' ,
],
],
];Чтобы использовать регистратор в контроллере:
$ this -> getLog ()-> debug ( $ message ) // or error(), etc, see PSR-3 Bone использует Zend Mail. Чтобы настроить почтовый клиент, просто бросьте свою конфигурацию (см. Zend Mail Docs)
<?php
return [
' mail ' => [
' name ' => ' 127.0.0.1 ' ,
' host ' => ' localhost ' ,
' port ' => 25 ,
// 'connection_class' => 'login', // plain, login, crammd5
// 'connection_config' => [
// 'username' => 'user',
// 'password' => 'pass',
// ],
],
];Если вы используете коробку Docker, предоставленную Bone, у вас также есть потрясающая Mailhog в вашем распоряжении. Просмотрите Awesome.scot:8025, и вы увидите входящий в почтовый ящик, так что вам никогда не нужно беспокоиться о том, что электронные письма о разработке достигают реального мира.
Модули могут быть созданы в вашем src/ папке. Модуль по умолчанию - BoneAppAppPackage . Модули включены, добавив их в config/packages.php . Пакеты поставщиков также могут быть установлены через композитор и включены таким же образом.
Модуль, по крайней мере, будет реализовать BarnacleRegistrationInterface , и если это модуль MVC, содержащий маршруты, он также должен реализовать BoneRouterRouterConfigInterface . Есть четыре метода для реализации:
hasEntityPath(): bool , если ваш модуль использует объекты доктрины, возвращают True (требуется delboy1978uk/bone-doctrine Package)getEntityPath(): string , если вы вернете True, это папка, которую проживает класс объектов.addToContainer(Container $c) , описанный нижеaddRoutes(Container $c, Router $router): Router , описанный ниже Вы можете создавать фабрики для ваших классов и иначе инициализации в любом случае, необходимом в другом месте вашего приложения. В качестве примера, класс контроллера может пожелать внести двигатель View, поэтому в методе вы добавите следующее:
$ c [MyController::class] = $ c -> factory ( function ( Container $ c ) {
$ view = $ c -> get (PlatesEngine::class);
return new MyController ( $ view );
}); Контейнер для инъекции зависимости- delboy1978uk/barnacle , который по сути является расширенным и внедренным PSR-11.
Bone MVC использует league/route , библиотеку промежуточного программного обеспечения PSR-15. Маршруты добавляются в ваш пакет, как:
/**
* @param Container $c
* @param Router $router
* @return Router
*/
public function addRoutes ( Container $ c , Router $ router ): Router
{
$ router -> map ( ' GET ' , ' / ' , [IndexController::class, ' indexAction ' ]);
$ router -> map ( ' GET ' , ' /learn ' , [IndexController::class, ' learnAction ' ]);
return $ router ;
}Смотрите их документы для получения дополнительной информации об использовании маршрутизатора
Аваст, ты! Мы будем использовать некоторые дополнительные либера
delboy1978uk/cdn
delboy1978uk/form
delboy1978uk/generator
delboy1978uk/image
delboy1978uk/session
Вы можете быстро повторить JavaScript и CSS, используя DelCdn , см. AppViewlayoutsbonemvc.php Fer.
См. Также Используйте DelIcon и DelCss , которые поступают в рамках CDN Lib.
Вы можете создать настраиваемые готовые формы начальной загрузки USIN ' delboy1978uk/form , см. Страницу Github FER.
Вы можете быстро сделать новую команду Generator CLI Th '.
Вы можете манипулировать изображениями, используя функции PHP GD, с классом DelImage .
Вы можете установить переменные сеанса Usin ' DelSessionManager , см. GitHub для информации.