Для разработки приложения я воспользовался лучшим на сегодняшний день php-фрэймворком Laravel.
Laravel - фреймворк для построения веб-приложений с выразительным и элегантным синтаксисом, что делает процесс разработки продуктивнее. Laravel берет на себя аутентификацию, роутинг, работу с сессиями, кеширование, внедрение зависимостей и многое другое, что встречается в большинстве приложений, оставив разработчику только фокус на задаче. Работа с таким фреймворком приносит радость и удовольствие Счастливые разработчики пишут лучший код.
Официальный сайт laravel – http://laravel.com
У Laravel всего несколько требований к серверу:
PHP >= 7.2
OpenSSL PHP Extension
В некоторых операционных системах, например в Linux, может понадобиться ручная установка модулей
Mcrypt PHP Extension,
MbstringPHPExtension.
Laravel не установится без менеджера зависимостей Composer. Поэтому, сперва убедимся в его наличии с помощью команды:
composer
Если с момента последнего запуска composer прошло более 30 дней, то необходимо обновить composer.
composer slef-update
После обновления composer можно запускать команду установки Laravel
Composer create-project laravel/laravel -–prefer-dist
Laravel установлен.
Права на запись
Папки внутри storage должны быть доступны веб-серверу для записи. Воспользуемся командой chmod
sudo chmod -R 777 storage
Изабвляеся от public в запросах
Для того, чтобы слово public не присутстовало в запросах приложения, создадим файл .htaccess, который будет перенаправлять запрос.
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
Теперь все запросы автоматически перенаправляются в папку public, а все остальные папки проекта стали закрытыми.
Маршрутизация проекта
Route::get('/', 'IndexController@getChapt'); //главная страница Route::get('/theses', 'ThesesController@getIndex'); //перечень диссертаций Route::get('/document/doc/{url}','DocsController@getDoc'); //формирование ЭРУД или диссертации в формате .doc Route::get('/document/pdf/{url}','DocsController@getPdf'); //формирование ЭРУД или диссертации в формате .pdf Route::get('/document/html/{url}','DocsController@getHtml'); //Просмотр ЭРУД или диссертаций в формате html Route::get('/{chapter}', 'IndexController@getChapt'); //Раздел сайта Route::get('/{chapter}/{cat}', 'IndexController@getCat'); //Раздел и категория сатйа Route::get('/{chapter}/{cat}/{art}', 'IndexController@getArt'); //Раздел, категория и статья сайта
Подключение базы данных
Сперва создадим базу в PHPMyAdmin
http://127.0.0.1/phpmyadmin/
Создаем базу с именем web.
Поключение к базе осуществляется в файле .env в корне проекта. Для этого переопределим переменные окружающей среды
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=web DB_USERNAME=root DB_PASSWORD=2244
Для взаимодействия с базой данных у Laravel имеетя множество прекрасных инструментов, таких как модели, прослушиватели, миграции и другие. Большинство этих и других инструментов, присутствующих в Laravel - имеется возможность вызывать из artisan - коммандного терминала.
Artisan
Laravel поставляется совместно с встроенным программным обеспечением - Artisan
Artisan - название интерфейса командной строки, входящей в состав Laravel. Он предоставляет полезные команды для использования во время разработки вашего приложения. Работает на основе мощного компонента SymfonyConsole.
Чтобы вывести все доступные команды Artisan, воспользуемся командой list:
php artisan list
Рассмотрим некоторые команды подробнее:
make:command — создаёт новый класс команды
make:console — создаёт новую команду Artisan
make:controller — создаёт новый класс контроллера
make:event — создаёт новый класс события
make:middleware — создаёт новый класс промежуточного ПО
make:migration — создаёт новый файл миграции
migrate - выполнение существующих миграций
make:model — создаёт новый класс модели, опционально и миграцию
make:provider — создаёт новый класс поставщика услуг
make:request — создаёт новый класс запроса формы
event:generate — генерирует пропущенные события и обработчики
Каждая команда также включает и инструкцию, которая отображает и описывает доступные аргументы и опции для команды. Чтобы её вывести, необходимо добавить слово help перед командой:
php artisan help migrate
Для определения текущей версии Laravel, можно воспользоваться опцией--version
php artisan --version