Когда вы беретесь за новый проект, вы можете чувствовать себя в растерянности, особенно если вы не знакомы с программированием. Так с чего же нам начать? На каких частях кода проекта нам нужно сосредоточиться? Давайте рассмотрим некоторые общие части проекта Laravel.
Проектная документация
Документация может быть наиболее полезной перед лицом новых проектов. Если проект содержит документацию, поздравляю, вам очень повезло. Но не радуйтесь слишком рано, потому что документы могут быть устаревшими или неполными. Проектные документы обычно пишутся в файлах readme
, вики или на общих платформах, таких как Confluence и Google Docs. Если вы развиваетесь на основе проекта, не будьте таким. Активно вносите свой вклад в проектную документацию: заполните пробелы или сделайте ее более четкой.
Если вам не повезет (в большинстве случаев), документации по проекту, с которым вы контактируете, нет. Отсутствие документации не совсем плохо, потому что в этом случае у вас есть возможность лично написать документацию для своей команды. Вы и ваши коллеги, а также новые разработчики, которых вы приведете, будете очень благодарны вам в будущем.
Документация на самом деле не очень интересная работа, но она необходима для того, чтобы проект работал в течение длительного времени. В проектном документе должна быть не только указана используемая технология и способ первоначальной установки, но и описан проект. “Почему так?” а также “Как действовать” Это обычно не выражено четко в самом коде. Некоторые варианты дизайна высокого уровня и их причины также должны быть задокументированы, чтобы помочь лучше понять код.
Документация на самом деле не очень интересная работа, но она необходима для того, чтобы проект работал в течение длительного времени. В проектном документе должна быть не только указана используемая технология и способ первоначальной установки, но и описан проект. || “Почему так?” || а также || “Как действовать” || Это обычно не выражено четко в самом коде. Некоторые варианты дизайна высокого уровня и их причины также должны быть задокументированы, чтобы помочь лучше понять код.
Composer-это инструмент управления пакетами PHP, который за последние несколько лет способствовал быстрому развитию экосистемы PHP. Laravel использует Composer с версии 4, поэтому он в основном существует в проектах. composer.json
Документация. Вы можете найти его в корневом каталоге проекта. composer.json
Документация и композитор.блокировка
Документация.
Файл блокировки содержит точную версию всех пакетов зависимостей, необходимых в проекте, в то время как файл JSON показывает содержимое публикации пакетов зависимостей. В настоящее время нас интересует только информация о версии в файлах JSON. Если вы хотите узнать больше об этих файлах, вы можете прочитать здесь.
Просмотр composer.json
При создании файла обратите внимание, что есть один требуется
Блок, выглядит следующим образом.
{ "require": { "php": ">=7.1.3", "fideloper/proxy": "~4.0", "laravel/framework": "5.6.*", "laravel/tinker": "~1.0" } }
В этом примере у нас есть проект на базе Laravel 5.6. Он опирается на два других пакета, а также на PHP не ниже версии 7.1.3. В вашем проекте вы, вероятно, увидите больше зависимостей от пакетов, и номер версии может измениться.
Теперь вы знаете, на какие пакеты расширений опирается проект, чтобы определить их соответствующие функции. Я рекомендую начать с зависимостей Laravel, потому что у них есть подробная документация. Документы опубликованы в Интернете и их можно легко найти: https://laravel.com/docs/{ВЕРСИЯ}
И https://laravel.com/api/{ВЕРСИЯ}
Следующая ссылка https://laravel.com/docs/5.6>.
Документация документы
Функция laravel и принцип работы каждой основной части представлены всесторонне. В то же время, api
В документе представлены классы и методы, используемые в фреймворке laravel, в виде списков.
После просмотра документа Laravel вы можете продолжить просмотр других зависимых документов. Вы можете перейти в Packagist (который является хранилищем расширенных пакетов, используемым Composer), чтобы получить дополнительную информацию о зависимостях, и соответствующий адрес каждого расширения https://packagist.org/packages/{ПОСТАВЩИК}/{ПАКЕТ}
Например, https://packagist.org/package…
На домашней странице проекта каждого упаковщика отображаются введение, номер версии, адрес склада (например, GitHub) пакета расширения, полный. readme
Документы и другая полезная информация. Информации, которую вы получаете с домашней страницы проекта, достаточно, чтобы дать вам представление о том, что представляет собой этот пакет расширений и какую часть функций вашего проекта он выполняет. Таким образом, продолжайте понимать применение вашего проекта. composer.json
Другие зависимости, перечисленные в документе.
Маршрут
Маршрутизация-это точка входа для применения определенной функции. Маршрутизация представлена в виде ссылки, которая в конечном итоге обрабатывается связанным контроллером или закрытием, когда браузер обращается к ссылке. Если конкретный контроллер найден путем маршрутизации, можно четко понять другие модули, от которых зависит контроллер, и конкретные функции, которые реализует контроллер. Если вы столкнетесь с новой маршрутизацией и повторите это действие, вы постепенно поймете, как работает все приложение.
Файл конфигурации маршрутизации можно найти в следующем расположении проекта:
- Laravel 5.3+
маршруты/*.php
- Ларавель 5.0-5.2
app/Http/routes.php
- Laravel 4.2
app/routes.php
Ловушка Маршрутизации
Иногда требуется много ума, чтобы найти маршруты на основе определенных URL-адресов.
Например, URI /пользователи/123/профиль
. Возможно, вам захочется выполнить поиск. пользователи/{идентификатор}/профиль
Определение маршрута. Фактически, он определен в пакетах маршрутизации, что затрудняет поиск маршрутизации.
Route::prefix('users')->group(function () { Route::get('{id}/profile', '[email protected]'); });
В этом случае пользователи
И {идентификатор}/профиль
Это не написано вместе, поэтому его трудно найти. Если маршрутов не так много, их легче найти. Однако, когда файлы маршрутизации содержат сотни определений, это становится очень трудным.
Еще одна яма-это Маршрут::ресурс()
(Есть также новые версии___________. Маршрут::Ресурс api()
)。
Маршрут::ресурс()
Маршрут будет автоматически сгенерирован на основе заданных параметров. Например, добавьте код в файл маршрутизации Route::resource ("собаки", "Контроллер собак");
Он будет выполнять ту же функцию, что и следующий код.
Route::group(['prefix' => 'dogs'], function () { Route::get('/', '[email protected]')->name('dogs.index'); Route::get('create', '[email protected]')->name('dogs.create'); Route::post('/', '[email protected]')->name('dogs.store'); Route::get('{id}', '[email protected]')->name('dogs.show'); Route::get('{id}/edit', '[email protected]')->name('dogs.edit'); Route::put('{id}', '[email protected]')->name('dogs.update'); Route::delete('{id}', '[email protected]')->name('dogs.destroy'); });
Однако, если вы попытаетесь найти что-то подобное собаки/{id}/редактировать
Содержимое, которое не может быть найдено, определяется как Маршрут::ресурс()
Его часть.
Иногда с помощью Route::resource()
Удобно определять маршруты напрямую таким образом, но я предпочитаю определять каждый маршрут индивидуально, что облегчает прямой поиск по каждому URI. Для получения дополнительной информации о ресурсах маршрутизации и контроллерах ресурсов вы можете ознакомиться с этими документами.
Самый простой способ просмотреть все маршруты в проекте-это использовать команду artisan маршрут:список
:
php artisan route:list
маршрут:список
Команда предоставляет полную информацию о каждом маршруте, включая режим HTTP-запроса, конкретный URL-адрес, имя маршрута, информацию о действиях (то есть контроллер и его метод) и информацию о промежуточном программном обеспечении для каждой конфигурации маршрута.
Поставщик Услуг
Поставщик услуг-это то место, где Ларавель высвобождает магию. В официальном документе приводится краткое изложение:
Поставщик услуг является центром загрузки для всех приложений Laravel. Ваше приложение и все основные сервисы Laravel загружаются через поставщика услуг.
Здесь то, что мы называем “загрузкой”, на самом деле относится к регистрации, такой как привязка контейнера службы регистрации, прослушиватель событий, промежуточное программное обеспечение и даже регистрация маршрутизации. Поставщик услуг является центром настройки вашего приложения.
Вы можете просмотреть местоположение приложения/провайдеры
Все поставщики услуг приложений в каталоге. Здесь вы должны добавить пользовательский код вокруг своего приложения. Например, в некоторых случаях ищите синтезаторы представлений, макросы и вносите изменения в конфигурацию.
В более старых версиях уровня, таких как 4.2, вы найдете аналогичные функции в глобальном. PHP-файл, потому что поставщики услуг обычно используют его только в пакетах в то время.
тест
Набор тестов, включенный в кодовую базу, показывает, как работает приложение, и последующие ответы. Это может дать ценные подсказки для применения обработки границ. Конечно, так же, как и документы кодовой базы, файлы тестов, поддерживающих приложения, могут не существовать, или их может быть очень мало, или даже бесполезные устаревшие файлы.
Как и написание проектных документов, написание тестов на соответствие приложений также может улучшить изучение проектных приложений и улучшить качество кода. Вы можете случайно обнаружить и исправить ошибки, удалить бесполезный код или добавить тестовое покрытие для важных классов в свой проект.
Острое оружие
Для разработчиков Laravel, Барри В. Д. Панель отладки уровня Heuvel – это полезный инструмент для отладки и отслеживания. Он мощный и простой в установке. Вы можете видеть все, что происходит в вашем приложении: маршруты и контроллеры, запросы к базе данных и время выполнения, отображение данных, исключения, просматривать содержимое выполнения и временные рамки процесса выполнения и так далее. Попробовав использовать этот пакет, вы полюбите его в будущей разработке приложений Laravel.
Эпилог
В этой статье я предлагаю несколько способов быстро начать работу с новым кодом проекта Laravel. Эта статья-не список всех деталей, это только начало. Я призываю вас использовать эти предложения, чтобы понять, куда они могут вас привести. Если у вас есть какие-либо идеи для общения, я был бы рад их услышать! Не стесняйтесь обращаться в Twitter.
От сообщества разработчиков PHP/Laravel https://laravel-China.org/top…