How to Structure Laravel Project
Povilas Korop
Povilas Korop (один из авторов QuickAdminPanel, генератора админки для Laravel, а также автор курса ):Povilas Korop
Самый часто задаваемый мне вопрос о Laravel выглядит так:
Вот типичный вопрос на StackOverflow:Куда я должен поместить этот код?
Нажмите, чтобы раскрыть...
Laravel это MVC фреймворк, и понятно что должно быть в Model, View и Controller. Но что если у вас есть собственный алгоритм для обработки данных перед тем как передать их в view? Где его разместить?
И лист продолжается далее.
- В том же методе контроллера?
- В отдельном закрытом (private) методе контроллера?
- В статической функции модели?
- В отдельном классе, таком как сервис?
- Или, может быть, в глобальной функции-помощнике (helper) без всякого класса?
- А ещё я слышал что Репозиторий это широко используемый шаблон проектирования?
Конечно, правильный ответ: это зависит от. Но зависит от чего? Об этом я и собираюсь рассказать в своём курсе.
Цель курса - обсудить практические примеры организации больших приложений на Laravel, различные подходы и шаблоны. Мы проанализируем существующие популярные open-source проекты и их структуру.
Важное замечание: этот курс не о шаблонах проектирования, так что модные слова вроде Singleton, Factory, Adapter, Repository и т.д. будут использоваться только когда следует.
Что я попытаюсь сделать, это сфокусироваться на практической стороне: каталоги, классы и методы, и не на том, как этот шаблон называется в теории. В реальности, каждый проект это на самом деле сборная солянка из разных шаблонов проектирования, и разработчики даже не знают как эти шаблоны называются.
Нажмите, чтобы раскрыть...
- Core Laravel MVC: Working with Controllers/Models/Views
- Use More Eloquent: Accessors/Mutators, Scopes, Observers & "Magic" Methods
- Controllers and Routes: Where to Put "Extra" Methods?
- Structuring Blade Files: , @yield and Other Commands
- Custom Base Controllers and Base Models
- Configuration: Never Use env() Directly in Controllers/Models
- Custom Laravel Classes Inside app/ Folder
- Form Request Classes for Validation
- User Notifications: Stop Using Mail::send()
- Jobs, Queues and Scheduling Tasks
- Events and Their Listeners
- API Resources for Data Transformation
- Traits: Good Practice or Last Resort?
- Global Helpers, PSR-4 and Autoloading
- Adding External PHP Class into Laravel Structure
- Growing Bigger: Design Patterns
- SOLID Principles with Examples
- Repositories: to Use or Not to Use?
- When/How to Use Service Classes?
- Dependency injection and Laravel IOC Container
- Adapter, Strategy, Factory and Other Fancy Words
- DDD: Domain Driven Design
- Wait, What About Unit Testing?
- Packages and Open-Source Projects
- Create Your Own Laravel Package
- Laravel Modules: Package by Nicholas Widart
- Review: Akaunting Open-Source Project Structure
- (more lectures to come in this section)
- Create Your Own Laravel Package
- Practical Examples
- Public Website + Adminpanel: Reusing Classes and Features
- Refactoring Big Controller Into Various Classes/Methods
- Public Website + Adminpanel: Reusing Classes and Features
https://laraveldaily.teachable.com/p/how-to-structure-laravel-project
Стоимость: $19 (сейчас, в конце января будет уже $59)