בכתבה זו, נעבור על אבני הבניין של Laravel ואיך נוכל להשתמש ב-Laravel כדי להקים פרויקט קטן.
Laravel הוא מסגרת אינטרנט PHP חזקה ואלגנטית שזיכתה פופולריות עצומה בקרב מפתחים בזכות הפשטותה, השונות והתכונות החזקות. לאורך השנים, Laravel הפך למסגרת ה-PHP הראשונה לפרויקטים גדולים וקטנים.
הכנות: התחלת הלסרבל
לפני שנצלול לפיתוח Laravel, עלינו לוודא שיש לנו את כל הכלים והתוכנות הנחוצים. הנה מה שנצטרך:
-
PHP. Laravel פועל על PHP, אז הצעד הראשון הוא לוודא שיש לך PHP מותקן במערכת שלך. אם אתה לא בטוח אם PHP מותקן, פתח שיחת מסוף או פקודת פורט והקלד
php -v
. אם PHP מותקן, תראה מספר גרסה. אם לא, תצטרך להתקין אותו.כדי להתקין PHP במכשיר שלך יש לנו מספר אפשרויות:
התקנה מקומית. תוכל להתקין PHP ישירות במחשב שלך. גש לדף הורדות PHP כדי להשיג את הגרסה העדכנית ביותר עבור המערכת הפעילה שלך.
Laravel Homestead. למקבלת התקנה יותר מסודרת, במיוחד אם אתה חדש בפיתוח PHP, שקול להשתמש ב-Laravel Homestead. Homestead הוא קופסת Vagrant עם תוכנית מוכן שמספקת סביבת פיתוח שלמה ל-Laravel. תוכל למצוא הוראות התקנה כאן.
-
Composer. Laravel משתמש ב-Composer לניהול תלות. Composer הוא מנהל התלות הברירת מחדל של PHP, ומשמש באופן נרחב ומתועד היטב.
-
מנהל התקנת Laravel. Laravel יכול להתקבל באופן גלובלי במערכת שלנו באמצעות מנהל התקנת Laravel, כלי שורת פקודה נוחה המאפשר זריזות ופשטות בתהליך יצירת פרויקטים חדשים ב-Laravel. כדי להתקין אותו באופן גלובלי במערכת שלך, עקוב אחרי השלבים הבאים:
- פתח תוכנית מסמכים או פקודת פקודה.
- הפעל את הפקודת Composer הבאה:
composer global require laravel/installer
ברגע שההתקנה הושלמה, וודא שספריית bin הגלובלית של Composer נמצאת במסלול ה"PATH" של המערכת כך שתוכל להפעיל את הפקודה
laravel
מכל מקום.אם אתה מעדיף אלטרנטיבה קלה יותר מאשר Homestead, אולי תשקול את Laravel Herd. Herd היא סביבת פיתוח מקומית מבוססת Docker שמותאמת במיוחד לפרויקטים ב-Laravel. תוכל ללמוד עוד על Herd ואיך להגדר אותו כאן.
על ידי הגדרת סביבת הפיתוח שלך עם PHP, Composer ו-Laravel Installer (או בחינה של אפשרויות כמו Homestead או Herd), אתה תהיה מוכן היטב להתחיל במסע שלך עם Laravel. בסעיפים הבאים, נעבור על תהליך יצירת פרויקט Laravel חדש, ביקורת במבנה המדריך שלו והגדרת סביבת הפיתוח.
הכנת פרויקט Laravel חדש
עכשיו כשסביבת הפיתוח שלנו מוכנה, הגיע הזמן ליצור פרויקט Laravel חדש. כדי ליצור פרויקט חדש, "ריק", אנו יכולים להשתמש בפקודת המסוף הבאה:
composer create-project --prefer-dist laravel/laravel project-name
project-name
צריך להחליף בשם הפרויקט האמיתי. פקודה זו תוריד את הגרסה העדכנית ביותר של Laravel ותקים מדריך פרויקט חדש עם כל הקבצים וההסמכות הנחוצים.
מבנה המדריך: ניווט בפרויקט Laravel
לאחר יצירת פרויקט Laravel חדש, נמצא את עצמנו במבנה מדריכים מאורגן היטב. הבנת מבנה זה היא קרדינלית לפיתוח Laravel יעיל. הנה כמה מהמדריכים העיקריים ותפקידם:
- app. בספרייה זו מכילה את הלוגיקה העיקרית של היישום שלנו, כולל בקרים, מודלים ומתוך-מחשבים של שירותים.
- bootstrap. קבצי ההפעלה וההגדרות של לאראוול מגורשים כאן.
- config. קבצי ההגדרה לרכיבים שונים של היישום שלנו נמצאים כאן, מה שמאפשר לנו למצוא ולהתאים מסמכים כמו קישוריות למסד נתונים ושירותים מנקודה בודדת בפרויקט.
- Database. בספרייה זו, נגדיר את ההזיזות של המסד הנתונים והזרימות שישמשו על ידי Eloquent ORM של לאראוול. Eloquent מפשט את ניהול המסד הנתונים.
- public. נכסים נגישים בפומבי כמו CSS, JavaScript ותמונות שייכים כאן. ספרייה זו גם מכילה את נקודת הכניסה ליישום שלנו, קובץ
index.php
. - resources. הנכסים הגולמיים והלא מוגברים של היישום שלנו, כגון תבליטי בלייד, Sass ו-JavaScript, מאוחסנים כאן.
- routes. תיקיית הגדרת הנתיבים של לאראוול מנוהלת בספרייה זו.
- storage. קבצים זמניים וקוקים, כמו גם יומנים, מאוחסנים כאן.
- vendor. Composer מנהל את התלמידים של הפרויקט שלנו בספרייה זו. כל הספריות המורדכות יהיו בספרייה זו.
הגדרות: הגדרת המסד הנתונים ומשתני הסביבה
כדי להגדיר את חיבור המסד הנתונים שלנו, עלינו לפתוח את הקובץ .env
בספריית השורשים של הפרויקט. כאן, אנו יכולים לציין את סוג המסד הנתונים, המארח, שם המשתמש, הסיסמה ושם המסד הנתונים. תודה ל-Eloquent ORM, Laravel תומך במספר קישורי מסדי נתונים, מה שהופך אותו לשימושי לצרכים של פרויקטים שונים.
הבנת קובץ .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
מציינים את שם המשתמש והסיסמה הדרושים לגישה למסד הנתונים.
שימוש במשתני סביבה
חשוב מאוד לשמור על מידע רגיש כמו זהותות מסדי נתונים בטוחים. Laravel מעודד את השימוש במשתני סביבה כדי להשיג זאת. במקום לקודד את הזיהויים שלנו בקובץ .env
, אנו יכולים לפנות אליהם בקבצי ההגדרה שלנו.
לדוגמה, בקבצי ההתקנה שלנו ב-Laravel (הממוקמים באותו ספרייה 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
. אם המשתנה לא נמצא, הוא חוזר לערך ברירת מחדל שמוצג כארגומנט שני.
על ידי שימוש בקבצי התקנה, אנו יכולים לאחסן מידע רגיש במיקום יותר בטיחוז ולהחליף בקלות בין תיקונים בין סביבות (כמו פיתוח וייצור).
עם פרויקט Laravel שלנו נוצר, ספריות מאורגנות והמסד הנתונים מותקן, אנו מוכנים להתחיל לבנות את האפליקציה האינטרנטית שלנו. בסעיפים הבאים, נתמקד בניתוח, בקרים ובעבודה עם תבניות Blade לנוף הקדמי שלנו.
ניתוח, בקרים ונוף: הלב של האפליקציה שלך ב-Laravel
ב-Laravel, ניתוח, בקרים ונופים פועלים יחד כדי לטפל בבקשות HTTP ולהציג דפים אינטרנט דינמיים. הבנה של המושגים הללו היא הכרחית ליצירת אפליקציות אינטרנט עם Laravel.
בקיצור, בקשות HTTP מקבלות על ידי הנתיב, שאז יודע איזה בקר צריך לטפל בפעולה. הבקר אחראי לעיבוד המידע ולהצגת המידע המעובד דרך נופים.
ניתוח
ב-Laravel, אנו יכולים להגדיר נתיבים בקובץ routes/web.php
. הגדרת נתיב בסיסית נראית כך:
Route::get('/welcome', function () {
return view('welcome');
});
דוגמה זו מכוונת דרך שכאשר היא נכנסת אליה, מחזירה את הנוף ברוכים הבאים
. דרכים יכולות גם לשמש לקריאת פעולות של בקרים, כפי שציינו לעיל, מה שמאפשר לנו לארגן את הקוד בצורה יעילה יותר.
יצירת בקר
בקרים משמשים כגשר בין הדרכים שלנו ללוגיקה של היישום שלנו. כדי ליצור בקר, ניתן להשתמש בפקודה make:controller
:
php artisan make:controller YourControllerName
הבקר החדש שלנו מכיל שיטות המתאימות לפעולות שונות ביישום שלנו, כגון חשיפת דף או עיבוד נתוני טופס.
נוף ותבניות בלייב
נופים ב-Laravel אחראיים להצגת נתוני היישום שלנו למשתמשים. מלכתחילה, Laravel משתמש במנוע תבניות הנקרא Blade, שמקל על יצירת נופים דינמיים ונצרכים שוב ושוב. הנה דוגמה להפעלת נוף בשיטה של בקר:
public function index()
{
$data = ['name' => 'John'];
return view('welcome', $data);
}
בדוגמה זו, הנוף ברוכים הבאים
מופעל עם נתונים, במקרה זה, 'שם'
מועבר אליו.
Blade הוא מנוע תבניות חזק מאוד המאפשר יצירת תוכן דינמי דרך הצהרות תנאים, לולאות וכן הלאה.
מילוי והטמעה במסד הנתונים
מערכת ההזזת מסד נתונים והטמעת של Laravel מאפשרת לנו להגדיר את מבנה המסד הנתונים שלנו ולמלא אותו בנתונים הראשוניים. אנו יכולים להסתכל על הזיזות כעל שינויים במסד הנתונים בשיטת שליטה על גרסאות, והטמעה כתהליך של הוספת נתונים דוגמא.
הזיזות והטמעה הם מושגים מאוד עוצמתיים המאפשרים עקביות במסדי הנתונים ברחבי הסביבות.
כדי ליצור הזזה, אנו יכולים להשתמש בפקודה make:migration
:
php artisan make:migration create_table_name
לאחר מכן נוכל לערוך את קובץ ההזזה הנוצר כדי להגדיר את מבנה הטבלה שלנו, ולאחר מכן להשתמש בארטיסן להרצת ההזזה:
php artisan migrate
הטמעה משמשת לעתים קרובות למלא את הטבלאות בנתונים הראשוניים למטרות בדיקה ופיתוח. כדי ליצור מזרן נוכל להשתמש בפקודה make:seeder
ולהריץ אותם עם:
php artisan db:seed
יצירת מודלים לאינטראקציה עם מסד הנתונים
מודל ה-ORM האלוקוואנטי של Laravel מפשט את האינטראקציות עם מסדי הנתונים על ידי שביתה לעבוד עם מסדי נתונים כאילו הם היו אובייקטים. כדי ליצור מודל, אנו משתמשים בפקודה make:model
:
php artisan make:model YourModelName
הגדר את הטבלה והיחסים במודל כדי לאפשר את שליפת נתונים קלה ושינויים. לדוגמה, כדי להשיג את כל הרשומות מטבלת users
:
$users = YourModelName::all();
הכוח של כל הידע הזה, הכולל ניווט, בקרים, ממשקים, הזזת מסד נתונים, הטמעה ומודלים, מקדם אותנו בדרך הנכונה לבניית אפליקציות רשת דינמיות עם Laravel. בסעיפים הבאים נצלול עמוק יותר לתוך יצירת יישום CRUD פשוט ובודקים תכונות מתקדמות יותר של Laravel.
יצירת יישום CRUD פשוט ב-Laravel
בואו נקח את מסע ה-Laravel שלנו לרמה הבאה על ידי בניית יישום CRUD – במקרה זה, יישום רישום ספרים פשוט, שבו נוכל ליצור, לקרוא, לעדכן ולמחוק ספרים. תרגיל ידני זה יעזור לנו להבין כיצד ליישם פעולות CRUD ב-Laravel.
לשם מידת המאמר הזה, נתמקד רק ביצירת הדף הראשון של היישום, אז תלוי בך לסיים את היישום הזה!
שלב 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
פקודה זו מייצרת קובץ סידר למילוי טבלת books
עם נתונים ראשוניים.
ערוך את קובץ הסידר (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'],
]);
}
}
בקובץ הזרע הזה, אנו מגדירים מידע דוגמא על ספרים שיושמד לתוך טבלת ה-books
. במקרה זה בפרט אנו יוצרים ספרים מ-1 עד 3 וכותבים מ-A עד C.
הפעל את הזרע כדי למלא את טבלת ה-books
:
php artisan db:seed --class=BooksTableSeeder
הפקודה זו מבצעת את קובץ הזרע וממלאת את טבלת ה-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 הנותרות בעצמך, אז קדימה לעבודה!
מסקנה
במאמר זה, הסתכלנו על היסודות של יישום Laravel: איך אפשר להשתמש בשורת הפקודה כדי לעזור לנו לבנות יישום, מבנה יישום Laravel, ואיך ליצור יישום CRUD ב-Laravel.
I hope this article was useful and that you’re now capable of using Laravel to create your applications and expand the information here with more advanced topics. More information on Laravel can be found at the official Laravel website.
Source:
https://www.sitepoint.com/laravel-project-setup-beginners-guide/