الأربعاء، 2 أبريل 2014

دورة Laravel4: الدرس الأول: كل ما يخص قاعدة البيانات Databse


دورة Laravel4: الدرس الأول: كل ما يخص قاعدة البيانات Databse
فى البداية، يجب أن تكون قد عرفت طريقة تثبيت Laravel 4، وتستطيع ذلك عبر تطبيق هذا الدرس، بعد تطبيقه تستطيع البدأ معنا فى تلك الدورة، إن شاء الله ستكون دورة بسيطة، لأن Laravel بدورها سهلة وبسيطة وممتعة :)) ، بدايةً سنقوم سريعًا بإنشاء قاعدة بيانات جديدة وذلك عبر PHPMyADMIN على السيرفر المحلي على حاسوبك، سنسميها على سبيل المثال laraveldb، ثم الآن سنبدأ مع Laravel :))
سندخل إلى المسار الذي قمنا بتثبيت فيه Laravel، بالنسبة ليه قمت بتثبيته على المسار التالي:
C:\wamp\www\laravel
ثم الآن سنقوم بالدخول إلى مجلد Config سنجد ملف بإسم database.php، قم بفتحه، ستجد أن Laravel تدعم العديد من نظام إدارة قواعد البيانات DBMS، مثل: sqlite و mysql، و pgsql ، و sqlsrv، ولكننا سنقوم بإستخدام MySQL، لذلك ستجد تلك السطور امامك:
'mysql' => array(
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'database',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
)
انا قمت بالتعديل على host و username على حسب الإعدادات الخاصة بالسيرفر الذي استخدمته، لاحظ أننى قمت بتعديل تلك البيانات فى المصفوفة mysql فقط؛ لأنه هو الـDBMS الذي سأقوم بإستخدامه فقط.
الآن قم بفتح ملف app.php الموجود فى مجلد config أيضًا، ثم أبحث عن هذا السطر:
'key' =>
ستجد بعد هذه الجملة قيمة نصية عبارة عن حروف وأرقام كثيرة، وهذه القيمة هي الـKey الخاص بمشروعك، مثل هذا الـKey:
dMexCEMpUTL9bR5NwpnfULiKKWiiUCVq
ولكن أحيانًا ستجد بدلاً منها جملة YourSecretKey!!، وهذا يعنى أن الـKey لم يتم إنشاؤه للمشروع، ولإنشاء الـKey يمكنك ذلك ببساطة عبر فتح Command Prompt ولكن لا تغلقه، اتركه مفتوحًا لأننا سنحتاجه طوال الدرس، ومن عبره قم بتنفيذ هذا الأمر:
cd c:\wamp\www\laravel
والآن قم بتنفيذ هذا الأمر:
php artisan key:generate
الآن لو قمت بفتح ملف app.php مرة أخرى، ستجد أنه تم توليد Key خاصة بمشروعك !!
- الآن ماذا لو نريد أن نقوم بإنشاء جدول جديد عبر بيئة Laravel 4؟!
- عبر Command Prompt سنقوم بإنشاء Migration جديد لإنشاء الجدول الذي نريده، فمثلاً انا أريد إنشاء جدول للأعضاء، لذا سأقوم بتنفيذ الأمر التالي:
php artisan migrate:make create_users_table
بعد تنفيذ هذا الأمر، ستجد أنه تم إنشاء ملف بإسم create_users_table، عند فتحه ستجد بعض الشيفرات الجاهزة،

use IlluminateDatabaseSchemaBlueprint;
use IlluminateDatabaseMigrationsMigration;
class CreateUsersTable extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
//
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
//
}
}

 ما يعنينا من تلك الشيفرات هي دالة up ودالة down، حيث أن دالة up سنقوم بداخلها بكتابة أمر لإنشاء الجدول وتحديد أعمدته، وبداخل دالة down سنقوم بكتابة أمر حذف الجدول، بدايةً عندما تريد أن تتعامل مع قاعدة البيانات فى أى جزء من برنامجك، ستقوم بكتابة Schema أولاً ((لاحظ أن أول حرف كبير S))، ومن ثم :: ومن ثم الأمر الذي نريده، ثم نقوم بفتح قوسين، كالشيفرة التالية:
Schema::create();
ففى دالة up سنقوم بإستخدام امر create وهذا الأمر لإنشاء جدول جديد، وبإعتبار ان create دالة، سنقوم بإدخال بارامتران فيها، أول بارامتر وهو اسم الجدول، ثاني بارامتر سيكون عبارة عن دالة تأخذ Argument واحد، والهدف من تلك الدالة هو تحديد أعمدة الجدول،
Schema::create('table_name',function($table){

});
- ولكن كيف يتم تحديد أعمدة الجدول؟!
- يتم ذلك عبر كتابة المتغير الذي قمنا بوضعه كـArgument فى الدالة، ومن ثم كتابة سهم ومن ثم كتابة نوع العمود، ثم نقوم بفتح قوسين، وبإعتبار نوع العمود دالة، فستأخذ بارامترين، أول بارامتر هو اسم الجدول، وثاني بارامتر، هو الـMax length للعمود،
Schema::create('table_name',function($table){
$table->increments('id',11);
$table->text('username' ,200);
});
لاحظ أن أنواع الأعمدة فى Laravel مختلفة عنها فى PHPMyADMIN، ولمعرفة الأنواع بشكل صحيح، يمكنك مراجعة هذا الرابط.
والآن فى دالة down سنقوم بعمل عكس تلك العملية، وذلك ببساطة عبر امر drop ، والذي لا يتطلب سوى بارامتر واحد وهو اسم الجدول فقط !!
Schema::drop('table_name');
والآن لتنفيذ إنشاء الجدول، قم بتنفيذ هذا الأمر:
php artisan migrate

ولكن ما الفائدة من تلك العملية؟!
فلنفترض أنك قمت بإنشاء جدول عبر PHPMyADMIN بالطريقة العادية، واكتشفت أنك قد أخطأت فى جزئية معينة، فسيتوجب عليك حذف الجدول كله والبدأ فى إنشاءه مرة أخرى من جديد، ولكن مع Laravel الوضع اسهل، فبساطة يمكنك تنفيذ هذا الأمر:
php artisan migrate:rollback
فسيتم إلغاء آخر خطوة تم تنفيذها فى قاعدة البيانات، ألا وهي إنشاء الجدول المسمى بـtable_name، وعندها تستطيع فقط التعديل على ملف create_users_table.php كما تريد، ثم تنفيذ هذا الأمر من جديد:
php artisan migrate
هذا تقريبًا كل ما يخص قواعد البيانات فى Laravel4، نلتقي فى الدرس القادم :))

ليست هناك تعليقات:

إرسال تعليق