راهنمای مبتدیان برای راه اندازی یک پروژه در لاراول
در این مقاله، بلوک های سازنده لاراول و اینکه چگونه می توانیم از لاراول برای راه اندازی یک پروژه کوچک استفاده کنیم، خواهیم پرداخت.
لاراول یک فریمورک کاربردی وب PHP قوی و زیبا است که به دلیل سادگی، تطبیق پذیری و ویژگی های قدرتمندش محبوبیت زیادی در بین توسعه دهندگان به دست آورده است. در طول سالها، لاراول به چارچوب PHP برای پروژههای بزرگ و کوچک تبدیل شده است.
پیش نیازها: شروع کار با لاراول
قبل از ورود به توسعه لاراول، باید مطمئن شویم که همه ابزارها و نرم افزارهای لازم را نصب کرده ایم. در اینجا چیزی است که ما نیاز خواهیم داشت:
PHP . لاراول روی PHP اجرا می شود، پس اولین قدم این است که مطمئن شوید PHP روی سیستم خود نصب شده است. اگر مطمئن نیستید که PHP نصب شده است، ترمینال یا خط فرمان را باز کنید و php -v
تایپ کنید. اگر PHP نصب شده باشد، شماره نسخه را مشاهده خواهید کرد. اگر نه، باید آن را نصب کنید.
برای نصب PHP در دستگاه شما چند گزینه داریم:
نصب محلی . می توانید PHP را مستقیماً روی رایانه خود نصب کنید. برای دریافت آخرین نسخه برای سیستم عامل خود به صفحه دانلودهای PHP مراجعه کنید.
لاراول هومستد . برای راهاندازی سادهتر، بهویژه اگر در توسعه PHP تازه کار هستید، از Laravel Homestead استفاده کنید. Homestead یک جعبه Vagrant از پیش بسته بندی شده است که یک محیط توسعه کامل را برای لاراول فراهم می کند. شما می توانید دستورالعمل نصب را در اینجا پیدا کنید.
آهنگساز . لاراول از Composer برای مدیریت وابستگی استفاده می کند. Composer مدیر وابستگی پیش فرض PHP است و به طور گسترده استفاده می شود و به خوبی مستند شده است.
نصب کننده لاراول Laravel را میتوان با استفاده از Laravel Installer، یک ابزار خط فرمان مناسب که فرآیند ایجاد پروژههای جدید لاراول را سادهتر و سادهسازی میکند، به صورت سراسری بر روی سیستم ما نصب کرد. برای نصب جهانی آن بر روی سیستم خود، مراحل زیر را دنبال کنید:
composer global require laravel / installer
پس از اتمام نصب، مطمئن شوید که دایرکتوری bin global Composer در "PATH" سیستم شما قرار دارد تا بتوانید دستور laravel
را از هر جایی اجرا کنید.
اگر جایگزین سبکتری را برای Homestead ترجیح میدهید، میتوانید Laravel Herd را در نظر بگیرید. هرد یک محیط توسعه محلی مبتنی بر داکر است که به طور خاص برای پروژه های لاراول طراحی شده است. در اینجا میتوانید درباره Herd و نحوه راهاندازی آن اطلاعات بیشتری کسب کنید.
با تنظیم محیط توسعه خود با PHP، Composer و Laravel Installer (یا کاوش گزینه هایی مانند Homestead یا Herd)، به خوبی برای شروع سفر لاراول خود آماده خواهید شد. در بخشهای بعدی، فرآیند ایجاد یک پروژه جدید لاراول، تحلیل ساختار دایرکتوری آن و پیکربندی محیط توسعه را تحلیل خواهیم کرد.
راه اندازی یک پروژه جدید لاراول
اکنون که محیط توسعه خود را آماده کرده ایم، زمان ایجاد یک پروژه جدید لاراول فرا رسیده است. برای ایجاد یک پروژه جدید، "خالی"، می توانیم از دستور ترمینال زیر استفاده کنیم:
composer create-project --prefer-dist laravel/laravel project-name
project-name
باید با نام واقعی پروژه جایگزین شود. این دستور آخرین نسخه لاراول را دانلود کرده و یک فهرست پروژه جدید با تمام فایل ها و وابستگی های لازم راه اندازی می کند.
ساختار دایرکتوری: پیمایش یک پروژه لاراول
پس از ایجاد یک پروژه جدید لاراول، ما خود را در یک ساختار دایرکتوری به خوبی سازماندهی شده می یابیم. درک این ساختار برای توسعه موثر لاراول بسیار مهم است. در اینجا برخی از دایرکتوری های کلیدی و اهداف آنها آورده شده است:
برنامه این دایرکتوری منطق اصلی برنامه ما از جمله کنترلرها، مدل ها و ارائه دهندگان خدمات را در خود جای داده است.
بوت استرپ . فایل های راه انداز و پیکربندی لاراول در اینجا قرار دارند.
پیکربندی . فایل های پیکربندی برای اجزای مختلف برنامه ما را می توان در اینجا پیدا کرد، که به ما امکان می دهد تنظیماتی مانند اتصالات پایگاه داده و خدمات را از یک نقطه در پروژه پیدا کرده و سفارشی کنیم.
پایگاه داده . در این دایرکتوری، مهاجرت ها و seed های پایگاه داده خود را برای استفاده توسط ORM لاراول Eloquent تعریف می کنیم. Eloquent مدیریت پایگاه داده را ساده می کند.
عمومی . داراییهای قابل دسترسی عمومی مانند CSS، جاوا اسکریپت و تصاویر به اینجا تعلق دارند. این دایرکتوری همچنین حاوی نقطه ورودی برنامه ما، فایل index.php
است.
منابع . دارایی های خام و کامپایل نشده برنامه ما، مانند قالب های Blade، Sass و جاوا اسکریپت در اینجا ذخیره می شوند.
مسیرها . پیکربندی مسیریابی لاراول در این دایرکتوری مدیریت می شود.
ذخیره سازی . فایلهای موقت و کش و همچنین گزارشها در اینجا ذخیره میشوند.
فروشنده . Composer وابستگی های پروژه ما را در این فهرست مدیریت می کند. تمام کتابخانه های دانلود شده در این دایرکتوری قرار خواهند گرفت.
پیکربندی: تنظیم پایگاه داده و متغیرهای محیطی
برای پیکربندی اتصال پایگاه داده خود، باید فایل .env
را در دایرکتوری ریشه پروژه باز کنیم. در اینجا می توانیم نوع پایگاه داده، میزبان، نام کاربری، رمز عبور و نام پایگاه داده را مشخص کنیم. به لطف Eloquent ORM، لاراول از چندین اتصال پایگاه داده پشتیبانی می کند و آن را برای نیازهای پروژه های مختلف همه کاره می کند.
درک فایل env
فایل .env
جایی است که ما مقادیر پیکربندی خاص محیط را تعریف می کنیم، مانند جزئیات اتصال پایگاه داده، کلیدهای API و تنظیمات دیگر. بیایید به یک مثال ساده از آنچه ممکن است در یک فایل .env
بیابید نگاهی بیندازیم:
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=my_database DB_USERNAME=my_username DB_PASSWORD=my_password
در این مثال:
DB_CONNECTION
نوع درایور پایگاه داده مورد استفاده ما را مشخص می کند (مانند MySQL، PostgreSQL، SQLite).
DB_HOST
میزبانی را مشخص می کند که سرور پایگاه داده ما در آن قرار دارد.
DB_PORT
پورتی را که سرور پایگاه داده روی آن اجرا می شود را مشخص می کند.
DB_DATABASE
نام پایگاه داده ای را که قصد داریم به آن متصل شویم را مشخص می کند.
DB_USERNAME
و DB_PASSWORD
نام کاربری و رمز عبور مورد نیاز برای دسترسی به پایگاه داده را مشخص می کنند.
استفاده از متغیرهای محیطی
ایمن نگه داشتن اطلاعات حساس مانند اعتبار پایگاه داده بسیار مهم است. لاراول استفاده از متغیرهای محیطی را برای دستیابی به این امر تشویق می کند. به جای اینکه اعتبارنامه های خود را در فایل .env
کدگذاری کنیم، می توانیم آنها را در فایل های پیکربندی خود ارجاع دهیم.
به عنوان مثال، در فایلهای پیکربندی لاراول ما (واقع در دایرکتوری config/
)، میتوانیم به پیکربندی پایگاه داده به صورت زیر ارجاع دهیم:
'mysql' => [ 'driver' => env ( 'DB_CONNECTION' , 'mysql' ) , 'host' => env ( 'DB_HOST' , '127.0.0.1' ) , 'port' => env ( 'DB_PORT' , '3306' ) , 'database' => env ( 'DB_DATABASE' , 'forge' ) , 'username' => env ( 'DB_USERNAME' , 'forge' ) , 'password' => env ( 'DB_PASSWORD' , '' ) , ] ,
در اینجا تابع env()
مقدار متغیر محیطی مشخص شده را از فایل .env
بازیابی می کند. اگر متغیر پیدا نشد، به مقدار پیش فرض ارائه شده به عنوان آرگومان دوم برمی گردد.
با استفاده از فایلهای پیکربندی، میتوانیم دادههای حساس را در مکان امنتری ذخیره کنیم و به راحتی تنظیمات را بین محیطها (مانند توسعه و تولید) تغییر دهیم.
با ایجاد پروژه لاراول، سازماندهی دایرکتوری ها و پیکربندی پایگاه داده، ما آماده شروع ساخت برنامه وب خود هستیم. در بخشهای بعدی، روی مسیریابی، کنترلکنندهها و کار با قالبهای Blade برای نمای ظاهری خود تمرکز خواهیم کرد.
مسیریابی، کنترلرها و نماها: قلب برنامه لاراول شما
در لاراول، مسیریابی، کنترلکنندهها و نماها برای رسیدگی به درخواستهای HTTP و ارائه صفحات وب پویا با هم کار میکنند. درک این مفاهیم برای ایجاد برنامه های کاربردی وب با لاراول ضروری است.
به طور خلاصه، درخواستهای HTTP توسط روتر دریافت میشود، که سپس میداند کدام کنترلکننده باید این عمل را انجام دهد. کنترلر وظیفه پردازش اطلاعات و نمایش اطلاعات پردازش شده از طریق View ها را بر عهده دارد.
مسیریابی
در لاراول می توانیم مسیرها را در فایل routes/web.php
تعریف کنیم. یک تعریف اصلی مسیر به صورت زیر است:
Route :: get ( '/welcome' , function ( ) { return view ( 'welcome' ) ; } ) ;
این مثال مسیری را تنظیم می کند که در صورت دسترسی، نمای welcome
را برمی گرداند. همانطور که در بالا به آن اشاره کردیم، میتوان از مسیرها برای فراخوانی اقدامات کنترلکننده استفاده کرد و به ما امکان میدهد کد را به طور کارآمدتر سازماندهی کنیم.
ایجاد یک کنترلر
کنترلرها به عنوان پل بین مسیرهای ما و منطق برنامه ما عمل می کنند. برای ایجاد یک کنترلر، می توانیم از دستور make:controller
استفاده کنیم:
php artisan make:controller YourControllerName
کنترلر جدید ما شامل روش هایی است که با اقدامات مختلف در برنامه ما مطابقت دارد، مانند نمایش صفحه یا پردازش داده های فرم.
نماها و قالب های Blade
Views در لاراول مسئول ارائه داده های برنامه ما به کاربران است. لاراول خارج از جعبه، از یک موتور قالب به نام Blade استفاده می کند که ایجاد نماهای پویا و قابل استفاده مجدد را ساده می کند. در اینجا مثالی از رندر یک view در متد کنترلر آورده شده است:
public function index ( ) { $data = [ 'name' => 'John' ] ; return view ( 'welcome' , $data ) ; }
در این مثال، نمای welcome
با داده ارائه می شود، در این مورد، 'name'
به آن منتقل می شود.
Blade یک موتور قالب سازی بسیار قدرتمند است که امکان ایجاد محتوای پویا را از طریق عبارات شرطی، حلقه ها و غیره فراهم می کند.
مهاجرت و کاشت پایگاه داده
سیستم انتقال و بذر پایگاه داده لاراول به ما این امکان را می دهد که طرح پایگاه داده خود را تعریف کرده و آن را با داده های اولیه پر کنیم. میتوانیم به مهاجرتها بهعنوان تغییرات پایگاهداده کنترلشده نسخهای و seding بهعنوان فرآیند گفت ن دادههای نمونه نگاه کنیم.
مهاجرت و بذر کردن مفاهیم فوق العاده قدرتمندی هستند که امکان سازگاری پایگاه داده در بین محیط ها را فراهم می کنند.
برای ایجاد یک مهاجرت، می توانیم از دستور make:migration
استفاده کنیم:
php artisan make:migration create_table_name
سپس میتوانیم فایل مهاجرت ایجاد شده را برای تعریف ساختار جدول خود ویرایش کنیم و سپس از Artisan برای اجرای مهاجرت استفاده کنیم:
php artisan migrate
بذر اغلب برای پر کردن جداول با داده های اولیه برای آزمایش و توسعه استفاده می شود. برای ایجاد seeder می توانیم از دستور make:seeder
استفاده کرده و آنها را با استفاده از:
php artisan db:seed
ایجاد مدل هایی برای تعامل با پایگاه داده
لاراول Eloquent ORM تعاملات پایگاه داده را با اجازه دادن به ما برای کار با پایگاه های داده به گونه ای که گویی آنها شی هستند، ساده می کند. برای ایجاد یک مدل از دستور make:model
استفاده می کنیم:
php artisan make:model YourModelName
جدول و روابط را در مدل تعریف کنید تا امکان بازیابی و دستکاری آسان داده ها فراهم شود. به عنوان مثال، برای بازیابی تمام رکوردها از جدول users
:
$users = YourModelName :: all ( ) ;
با داشتن این همه دانش، ترکیب مسیریابی، کنترلکنندهها، نماها، مهاجرت پایگاه داده، تخمگذاری و مدلها، ما به خوبی در راه ساخت برنامههای وب پویا با لاراول هستیم. در بخشهای بعدی، به ایجاد یک برنامه ساده CRUD و تحلیل آپشن های پیشرفتهتر لاراول عمیقتر خواهیم پرداخت.
ایجاد یک برنامه ساده CRUD در لاراول
بیایید سفر لاراول خود را با ساختن یک برنامه CRUD به سطح بعدی ببریم - در این مورد، یک برنامه ثبت کتاب ساده، که در آن میتوانیم کتابها را ایجاد، مطالعه، بهروزرسانی و حذف کنیم. این تمرین عملی به ما در درک نحوه اجرای عملیات CRUD در لاراول کمک می کند.
به خاطر حجم این مقاله، ما فقط روی ایجاد صفحه اولیه برنامه تمرکز خواهیم کرد، پس این شما هستید که این برنامه را به پایان برسانید!
مرحله 1: یک مهاجرت برای جدول کتاب ها ایجاد کنید
برای ایجاد مهاجرت برای جدول books
، از دستور زیر استفاده میکنیم:
php artisan make:migration create_books_table
این دستور یک فایل مهاجرت برای ایجاد جدول books
در پایگاه داده ایجاد می کند. سپس، فایل انتقال ایجاد شده را که به تازگی ایجاد کردیم ( database/migrations/YYYY_MM_DD_create_books_table.php
) را ویرایش کنید تا ساختار جدول را تعریف کنید:
use Illuminate \ Database \ Migrations \ Migration ; use Illuminate \ Database \ Schema \ Blueprint ; use Illuminate \ Support \ Facades \ Schema ; class CreateBooksTable extends Migration { public function up ( ) { Schema :: create ( 'books' , function ( Blueprint $table ) { $table -> id ( ) ; $table -> string ( 'title' ) ; $table -> string ( 'author' ) ; $table -> timestamps ( ) ; } ) ; } public function down ( ) { Schema :: dropIfExists ( 'books' ) ; } }
در این فایل مهاجرت، ساختار جدول books
را شامل ستون های آن ( id
، title
، author
، timestamps
) تعریف می کنیم. سپس قصد داریم مهاجرت را برای ایجاد جدول اجرا کنیم:
php artisan migrate
این دستور فایل مهاجرت را اجرا می کند و جدول books
را در پایگاه داده ایجاد می کند.
مرحله 2: یک بذر برای جدول کتاب ها ایجاد کنید
در مرحله بعد، ما میخواهیم یک بذر برای جدول books
ایجاد کنیم تا آن را با دادههای اولیه پر کنیم:
php artisan make:seeder BooksTableSeeder
این دستور یک فایل seder برای پر کردن جدول books
با داده های اولیه ایجاد می کند.
فایل seder ( database/seeders/BooksTableSeeder.php
) را برای تعریف داده های کتاب نمونه ویرایش کنید:
use Illuminate \ Database \ Seeder ; class BooksTableSeeder extends Seeder { public function run ( ) { DB :: table ( 'books' ) -> insert ( [ [ 'title' => 'Book 1' , 'author' => 'Author A' ] , [ 'title' => 'Book 2' , 'author' => 'Author B' ] , [ 'title' => 'Book 3' , 'author' => 'Author C' ] , ] ) ; } }
در این فایل seder داده های نمونه کتاب را تعریف می کنیم که در جدول books
درج می شود. در این مورد خاص، ما در حال ایجاد کتاب از 1 تا 3 و نویسندگان از A تا C هستیم.
بذر را اجرا کنید تا جدول books
را پر کنید:
php artisan db:seed --class = BooksTableSeeder
این دستور فایل seder را اجرا می کند و جدول books
را با داده های نمونه تعریف شده پر می کند.
مرحله 3: یک کنترلر ایجاد کنید
یک کنترل کننده برای مدیریت کتاب ها ایجاد کنید:
php artisan make:controller BookController
این دستور یک فایل کنترل کننده ( BookController.php
) ایجاد می کند که حاوی روش هایی برای مدیریت عملیات CRUD مربوط به کتاب ها است. با ایجاد کنترلر، بیایید روی پیاده سازی متدهای CRUD در BookController
تمرکز کنیم. این در app/Http/Controllers/BookController.php
قرار دارد:
use App \ Book ; public function index ( ) { $books = Book :: all ( ) ; return view ( 'books.index' , compact ( 'books' ) ) ; } public function create ( ) { return view ( 'books.create' ) ; } public function store ( Request $request ) { $book = new Book ; $book -> title = $request -> input ( 'title' ) ; $book -> author = $request -> input ( 'author' ) ; $book -> save ( ) ; return redirect ( ) -> route ( 'books.index' ) ; }
در این فایل کنترلر، روش هایی برای مدیریت عملیات CRUD مربوط به کتاب ها تعریف می کنیم. به عنوان مثال، روش index
همه کتاب ها را از پایگاه داده بازیابی می کند و آنها را به نمای index
ارسال می کند، در حالی که روش store
یک رکورد کتاب جدید بر اساس داده های ارسال شده از طریق یک فرم ایجاد می کند. متد create()
وظیفه نمایش فرم ایجاد یک رکورد کتاب جدید را بر عهده دارد. وقتی کاربر به مسیر مرتبط با این متد هدایت میشود، لاراول این تابع را اجرا میکند و نمایی به نام books.create
را برمیگرداند.
مرحله 4: ایجاد نما
نماهایی را برای فهرست کردن، ایجاد و ویرایش کتاب ها در پوشه resources/views
ایجاد کنید.
نمای مثال ( create.blade.php
):
@extends('layout') @section('content') < h1 > Create a New Book </ h1 > < form method = " POST " action = " {{ route( ' books.store ' ) }} " > @csrf < div class = " form-group " > < label for = " title " > Title </ label > < input type = " text " name = " title " class = " form-control " id = " title " placeholder = " Enter book title " > </ div > < div class = " form-group " > < label for = " author " > Author </ label > < input type = " text " name = " author " class = " form-control " id = " author " placeholder = " Enter author name " > </ div > < button type = " submit " class = " btn btn-primary " > Submit </ button > </ form > < a href = " {{ route( ' books.index ' ) }} " > Back to the list </ a > @endsection
در این مثال، نمای create
حاوی فرمی برای گفت ن یک کتاب جدید است. فرم داده ها را به روش store
BookController
ارسال می کند. دستورالعمل @csrf
یک توکن CSRF برای محافظت در برابر جعل درخواست های متقابل سایت ایجاد می کند.
با این مثال شما باید بتوانید متدها و نماهای کنترلر را برای بقیه عملیات CRUD توسط خودتان پیاده سازی کنید، پس دست به کار شوید!
نتیجه
در این مقاله به اصول اولیه یک برنامه لاراول پرداختیم: چگونه می توانیم از خط فرمان برای کمک به ساخت یک برنامه کاربردی، ساختار برنامه لاراول و نحوه ایجاد یک برنامه CRUD در لاراول استفاده کنیم.
امیدوارم این مقاله مفید بوده باشد و اکنون بتوانید از لاراول برای ایجاد برنامه های خود استفاده کنید و اطلاعات اینجا را با موضوعات پیشرفته تر گسترش دهید. اطلاعات بیشتر در مورد لاراول را می توانید در وب سایت رسمی لاراول بیابید.
ارسال نظر