หลังจากที่ได้ทำการติดตั้งตามบทความนี้แล้ว “Laravel เริ่มติดตั้งและสร้าง route ง่าย ๆ EP1” บทความนี้จะมาอธิบายเพิ่มเติมแต่ละส่วนของโครงสร้างโปรเจคว่ามีหน้าที่ทำอะไร และตัวอย่างการใช้งานอย่างไรได้บ้าง
มาทำความรู้จักโครงสร้างของ Laravel กัน
- app/Console
- app/Exceptions จัดการ Error Exception จากการทำงานที่ผิดพลาด
- app/Http
- app/Http/Controllers จัดเก็บ Controllers file (*Controller.php) สำหรับเก็บ Logic ,Route ,Repository ,ORM ต่าง ๆ จะเขียนในไฟล์เหล่านี้
- app/Http/Middleware จัดเก็บไฟล์ middleware เข้าออกจอง Routes ต่าง ๆ เช่น การทำ Basic Authenticate ,Session Handlers เป็นต้น
- app/Kernel
- app/Models เก็บ Model จาก databases ต่าง ๆ กำหนด
- app/Providers เก็บไฟล์ Providers กำหนด เช่น BroadcasProvider ,EventServiceProvider ,RouteServiceProvider เป็นต้น
- bootstrap
- bootstrap/cache
- bootstrap/app.php
- config
- config/app.php เก็บค่า config ระดับ app เช่น ชื่อ app ,env (production) ,timezone UTC เป็นต้น
- config/auth.php
- config/broadcasting.php
- config/cache.php
- config/cors.php
- config/databases.php เก็บ database driver ต่าง ๆ mysql , pgsql, sqlsrv ,sqlite เป็นต้น
- config/filesystems.php
- config/hashing.php
- config/logging.php
- config/mail.php
- config/queue.php
- config/services.php
- config/session.php
- config/view.php
- database
- database/factories
- database/migrations เก็บไฟล์ script create table ของ database
- database/seeders
- public หลังจาก compile laravel mix จะถูกมาเก็บในนี้ ไฟล์ที่นี่
- public/.htaccess
- public/favicon.ico
- public/index.php
- public/rebots.txt
- resources
- resources/css เก็บไฟล์ css ( Cascading Style Sheets ) ต่าง ๆ
- resources/js เก็บไฟล์ js (Javascript ) ต่าง ๆ
- resources/lang
- resources/views เก็บไฟล์ view (*.blade) ต่าง ๆ
- routes
- routes/api.php จัดการ route RESTApis ต่าง ๆ (laravel –resource )
- routes/channels.php
- routes/console.php
- routes/web.php จัดการ route ทั่วไป แบบปกติจะจัดการที่ไฟล์นี้เป็นส่วนใหญ๋
- storage
- storage/app/public
- storage/framework
- storage/logs
- tests เขียน unittest ต่าง ๆ
- tests/Feature
- tests/Unit
- vender จัดการ libraries ต่าง ๆ ที่ได้จากการติดตั้ง laravel ตั้งแต่เริ่มต้น
- .env เก็บค่า config ต่าง ๆ โดยจะแบ่งเป็น dev , prod
- artisan
- composer.json
- package.json
- webpack.mix.js จัดการไฟล์ต่าง ๆ ที่เป็น css ,js ก่อนการ compile minify จะได้ output เก็บที่ public/
ในบ้าง directory ,file ไม่ได้เข้าไปยุ่งเกี่ยวในระหว่างการใช้งาน จะขอไม่อธิบาย หากคุณต้องการศึกษาเพิ่มเติม https://laravel.com/docs/7.x/structure