Дисциплины - Объектно-ориентированное программирование

ООП в PHP - Фрэймворк Laravel - Конфигурирование проекта

Основные файлы настроек хранятся в config/. Каждой группе настроек отведен свой файл либо папка.

После установки фреймворка, можно придумать имя своему будущему приложению. Это имя будет фигурировать в качестве корневого имени классов приложения. По умолчанию, ваше приложение находится в папке app, имеет имя App и автозагружается при помощи Composer, согласно стандарту PSR-4. Вы можете изменить его при помощи artisan-команды app:name.

Например, чтобы изменить имя приложения на Horsefly, выполните эту команду в корне установленного фреймворка:

php artisan app:name Horsefly

Laravel "из коробки" практически не требует дополнительного конфигурирования - вы можете сразу начать писать код.

Максимум, вам может быть нужно изменить настройки доступа к базе данных в config/database.php и, возможно, изменить параметры timezone и locale в config/app.php.

Далее, вам нужно определиться с названием среды выполнения, в которой будет работать ваше приложение на данной машине. Например, когда вы разрабатываете приложение, вам нужно видеть подробный текст возникающих ошибок. По умолчанию, фреймворк считает, что выполняется в среде production и в ней текст ошибки не выводится.

Поэтому вы определяете, что на данной машине у вас среда выполнения local и в файле .env ставите параметр debug в true.

Примечание: Никогда не ставьте app.debug в true в продакшне, т.е. на хостинге.

Права на запись

Папки внутри storage должны быть доступны веб-серверу для записи. Если вы устанавливаете фреймворк на Linux или MacOs - открыть папки на запись можно командой:

 chmod -R 777 storage

Пути

Расположение некоторых папок, используемых фреймворком, можно изменить. Пути до таких папок задаются в bootstrap/paths.php.

Настройка среды выполнения

Часто необходимо иметь разные значения для разных настроек в зависимости от среды, в которой выполняется приложение. Например, вы можете захотеть использовать разные драйвера кэша на локальном и производственном (продакшн) серверах. Это легко достигается использованием настроек, зависящих от среды.

Просто создайте новую папку внутри папки config, название которой совпадает с именем вашей среды, таким как local. Затем создайте файлы настроек, которые вы хотите переопределить и укажите в них значения для этой среды.

Например, вы можете переопределить драйвер кэша для локальной среды, создав файл cache.php внутри config/ с таким содержимым:

return [
    'driver' => 'file',
];

Заметьте, что вам не нужно указывать каждую настройку, которая есть в исходном конфигурационном файле, кроме настроек, которые вы хотите переопределить. Настройки среды будут наложены на эти базовые файлы. Теперь нам нужно сообщить Laravel, как определить, в какой среде он работает. Начальная среда всегда production.

Однако, вы можете настроить и другие среды в файле bootstrap/environment.php, который находится в корне установки Laravel. В этом файле вы найдёте вызов метода $app->detectEnvironment. Функция, которая ему передаётся, используется для определения текущей среды. В этой функции вы можете определять среду выполнения по имени машины, вызываемому домену или переменной окружения.

$env = $app->detectEnvironment(function()
{
    return getenv('APP_ENV');
});

В этом примере название среды выполнения у нас находится в переменной окружения APP_ENV. Занести туда значения вы можете в файле .htaccess, правилах nginx или при помощи файла .env, который должен находиться в корне фреймворка.

Получение текущей среды

Вы можете получить текущую среду с помощью метода environment объекта Application:

$environment = $app->environment();

Передача аргументов в этот метод, чтобы проверить, совпадает ли среда с переданным значением:

if ($app->environment('local'))
{
    // Среда - local
}
if ($app->environment('local', 'staging'))
{
    // Среда - local ИЛИ staging
}

Режим обслуживания

Когда ваше приложение находится в режиме обслуживания (maintenance mode), специальный шаблон будет отображаться вместо всех ваших маршрутов. Это позволяет "отключать" ваше приложение во время обновления или обслуживания. Проверка на режим обслуживания уже включена в стандартный фильтр App::before в файле app/Http/Filters/MaintenanceFilter.php. Ответ от этой проверки будет возвращен пользователю, когда приложение находится в режиме обслуживания.

Для включения этого режима просто выполните команду Artisan-а down:

php artsan down

Чтобы выйти из режима обслуживания выполните команду up:

php artsan up

Настройка сервис-провайдеров

При использовании среды, вы, возможно, захотите "добавить" дополнительные сервис-провайдеры к исходным в файле app. Однако, если вы это сделаете, вы заметите, что сервис-провайдеры среды переопределяют сервис-провайдеры в вашем исходном файле настроек app. Чтобы заставить сервис-провайдеры не переопределять, а добавляться к существующим, используйте вспомогательный метод append_config в вашем файле настроек среды app:

'providers' => append_config(array(
    'LocalOnlyServiceProvider',
))

Язык

Язык по умолчанию устанавливается в файле app.php.

'locale' => 'en',

Язык можно изменить в любом файле проекта:

App::setLocale('ru');

Вы также можете установить резервный язык локализации в случае, если для основного языка нет вариантов перевода, будет браться строка из резервного файла локализации. Обычно это английский язык, но вы можете это поменять. Настройка находится в файле app/config/app.php:

'fallback_locale' => 'en',

Файлы переводов хранятся в папке, имя которой совпадает с названием локали, и которая должна находиться в resources/lang. Например, для переводов на русский язык, создайте в папке resources/lang папку ru, в ней - файл message.php со следующим содержимым:

return [
 'welcome' => 'Добро пожаловать на сайт' 
]

Теперь для получения строк из языкового файла можно воспользоваться фасадом Lang.

echo Lang::get('messages.welcome');

При переключении на локаль en, Laravel будет искать файл с тем же именем (message.php), но из папки en, поэтому файлы с одинаковым именем и одинаковыми элементами массива должны находиться в каждой языковой папке.

Языковые строки могут быть использованы при валидации данных из форм. Подробнее об этом в теме Request-запросы.

E-mail

Laravel предоставляет простой интерфейс к популярной библиотеке SwiftMailer. Главный файл настроек - app/config/mail.php - содержит всевозможные параметры, позволяющие вам менять SMTP-сервер, порт, логин, пароль, а также устанавливать глобальный адрес from для исходящих сообщений. Вы можете использовать любой SMTP-сервер либо стандартную функцию PHPmail - для этого установите параметр driver в значение mail. Кроме того, доступен драйвер sendmail.

Mail::send('emails.welcome', $data, function($message)
{
$message->to('foo@example.com', 'Джон Смит')->subject('Привет!');
});

Количество комментариев: 0

Для того, чтобы оставить коментарий необходимо зарегистрироваться
814301 БГУИР
814302 БГУИР
814303 БГУИР
894351 БГУИР
90421 БГУИР


Изображения Видео

1. Абстрактная фабрика https://www.youtube.com/watch?v=1mVONOCxfLg
2. Фабричный метод https://www.youtube.com/watch?v=5UqUDR6_2cY
3. Шаблон декоратор https://www.youtube.com/watch?v=Lwb9bm8yKD0
4. Dessign patterns on PHP https://github.com/domnikl/DesignPatternsPHP
5. Приёмы объектно-ориентированного проектирования. Паттерны проектирования Э. Гамма, Р. Хелм, Р. Джонсон, Д. Влиссидес; [пер. с англ.: А. Слинкин науч. ред.: Н. Шалаев]. — Санкт-Петербург [и др.] : Питер, 2014. — 366 с. : ил. ; 24 см.
6. Приемы объектно-ориентированного проектирования. Паттерны проектирования Э. Гамма, Р. Хелм, Р. Джонсон, Д. Влиссидес; [пер. с англ.: А. Слинкин науч. ред.: Н. Шалаев]. — Санкт-Петербург [и др.] : Питер, 2014. — 366 с. : ил. ; 24 см.
7. Ajax http://erud.by/ajax
8. Ajax http://erud.by/ajax
9. Ajax http://erud.by/ajax
10. Документация Laravel http://laravel.com
Задание к курсовой работе
Задание к курсовой работе
Вопросы к экзамену