إنشاء وتشغيل مشروع CakePHP باستخدام ServBay
يُعد ServBay بيئة تطوير ويب محلية شاملة تدعم أنظمة macOS وWindows، وتأتي مدمجة مع بيئات لغات متعددة مثل PHP، Node.js، Python، Go، وJava، بالإضافة إلى خدمات قواعد البيانات مثل MySQL، PostgreSQL، MongoDB، وRedis، إلى جانب خوادم ويب مثل Caddy أو Nginx. يوفر ServBay منصة تطوير سهلة وسريعة للمطورين، تتيح بناء وإدارة المشاريع المحلية بسهولة.
في هذا المقال ستتعلم كيفية إنشاء وتكوين وتشغيل مشروع CakePHP داخل بيئة ServBay. CakePHP هو إطار عمل شهير لتطوير تطبيقات الويب بـ PHP، يعتمد على نمط MVC (النموذج-العرض-المتحكم)، ويشتهر بسرعة تطويره، وقوة نظام ORM المدمج وميزاته الأمنية. بفضل سهولة استخدام ServBay، يمكنك البدء بتطوير CakePHP بسرعة فائقة.
ما هو CakePHP؟
CakePHP هو إطار عمل مفتوح المصدر لتطوير تطبيقات الويب بـ PHP، يوفر بنية أساسية لبرمجة تطبيقات ويب سريعة ومنظمة دون التضحية بالمرونة. يعتمد إطار CakePHP مبدأ "الاتفاقيات تفوق الإعدادات"، مما يبسط العديد من مهام التطوير الشائعة.
أهم ميزات وفوائد CakePHP
- MVC: تنظيم واضح للكود، وسهولة في الصيانة والتطوير.
- تطوير سريع: أدوات سطر الأوامر (Bake) لتوليد الكود وتسريع سير العمل.
- ORM قوي (رسم الخرائط الكائنية-العلاقية): يسهل التعامل مع قواعد البيانات ويدعم أنظمة متعددة.
- أمان مدمج: حماية من CSRF، الحماية من حقن SQL، والتحقق من المدخلات.
- محرك قوالب مرن: يدعم تقنيات متنوعة للعرض.
- مجتمع نشط وملحقات غنية: دعم واسع وإمكانية توسيع وظائف التطبيق.
- توثيق شامل: أدلة مفصلة ومرجع كامل للـ API.
CakePHP مناسب لبناء جميع أنواع تطبيقات الويب، من APIs بسيطة لأكثر الأنظمة المؤسسية تعقيدًا.
إعداد بيئة تطوير CakePHP باستخدام ServBay
يقدم ServBay بيئة متكاملة لتطوير مشاريع CakePHP، تشمل التالي:
- مترجم PHP مثبت مسبقًا مع ملحقاته الضرورية.
- مدير الحزم Composer مثبت مسبقًا.
- خادم ويب سهل التكوين (Caddy/Nginx).
- خدمات قواعد بيانات مدمجة (MySQL، PostgreSQL، Redis وغيرها).
باستخدام ServBay، تتجنب عناء التثبيت اليدوي والتكوين لهذه الأدوات.
المتطلبات الأساسية
قبل البدء، تأكد من إتمام الخطوات التالية:
- تثبيت ServBay: قم بتحميل وتثبيت ServBay بنجاح على نظام macOS.
- تشغيل خدمات ServBay: قم بتشغيل تطبيق ServBay وتأكد من بدء تشغيل الحزم المطلوبة (مثلاً PHP، وقاعدة البيانات MySQL أو PostgreSQL، وخدمة التخزين المؤقت مثل Redis أو Memcached). يمكنك إدارة هذه الخدمات من تبويب "الحزم" في لوحة التحكم الخاصة بـ ServBay.
- الإلمام بعمليات ServBay الأساسية: تعرف على كيفية إضافة وتكوين المواقع ضمن ServBay. إذا لم تكن على دراية بذلك، راجع أولاً دليل استخدام ServBay الأساسي.
إنشاء مشروع CakePHP
ينصح ServBay بتخزين ملفات مشاريع الويب ضمن المسار /Applications/ServBay/www
ليسهل عليه التعرف على المواقع وإدارتها تلقائيًا.
افتح الطرفية (Terminal)
شغّل تطبيق الطرفية على macOS.
انتقل إلى دليل المواقع الخاص بـ ServBay
انتقل إلى الدليل الخاص بتخزين المواقع الموصى به من ServBay:
bashcd /Applications/ServBay/www
1أنشئ مجلد المشروع
أنشئ مجلد جديد لمشروع CakePHP الخاص بك. سنستخدم اسم
servbay-cakephp-app
كمثال:bashmkdir servbay-cakephp-app cd servbay-cakephp-app
1
2أنشئ مشروع CakePHP باستخدام Composer
يأتي ServBay مزودًا بـ Composer. داخل دليل المشروع، نفذ أمر إنشاء هيكل مشروع CakePHP:
bashcomposer create-project --prefer-dist cakephp/app .
1سيقوم هذا الأمر بتنزيل وتثبيت أحدث إصدار مستقر من CakePHP مع جميع الاعتمادات في المجلد الحالي (
.
).تثبيت محرك ORM (في حال استخدام PostgreSQL)
إذا كنت ستستخدم قاعدة بيانات PostgreSQL، تحتاج لتثبيت الحزمة الخاصة بها:
bashcomposer require cakephp/orm-pgsql
1بالنسبة لـ MySQL؛ يكون مدعومًا افتراضيًا ولا يحتاج لمزيد من التثبيت داخل أعتمادات CakePHP الرئيسية.
التكوين الأولي
بعد إنشاء المشروع، عليك إجراء بعض الإعدادات الأساسية، خاصة إعداد معلومات الاتصال بقاعدة البيانات.
تكوين متغيرات البيئة وبيانات الاتصال بقاعدة البيانات
تُركّز إعدادات البيئة المحلية لـ CakePHP داخل الملف
config/app_local.php
. قم بتحرير هذا الملف وابحث عن القسمDatasources
لتكوين الاتصال بقاعدة البيانات الخاصة بك. اسم المستخدم الافتراضي في ServBay غالبًا هوroot
وكلمة السر الافتراضية هيpassword
.مثال لتكوين اتصال MySQL:
php// config/app_local.php 'Datasources' => [ 'default' => [ 'className' => \Cake\Database\Connection::class, 'driver' => \Cake\Database\Driver\Mysql::class, // أو \Cake\Database\Driver\Postgres::class لـ PostgreSQL 'persistent' => false, 'host' => '127.0.0.1', // عنوان خادم قاعدة البيانات (محلي) //'port' => '3306', // المنفذ الافتراضي لـ MySQL 3306، PostgreSQL 5432 'username' => 'root', // اسم المستخدم الافتراضي في ServBay 'password' => 'password', // كلمة السر الافتراضية في ServBay 'database' => 'servbay_cakephp_app', // اسم قاعدة البيانات التي ستنشئها 'encoding' => 'utf8mb4', 'timezone' => 'UTC', 'flags' => [], 'cacheMetadata' => true, 'log' => false, /** * Set identifier quoting to true if you are using words like "user" as your table name. * But if you are using words like "cake" you can set it to false. * If you don't know use true. */ 'quoteIdentifiers' => false, /** * Current limitations include the following: * - Most drivers do not support setting isolation levels via PDO options. * Using them will result in an error. * - Not all drivers support setting the charset via PDO options. * Using them will result in an error. * - PDO options are not supported for packaged drivers like Postgres from CakePHP. * For Postgres, you only need to set the encoding. */ 'options' => [], //'url' => env('DATABASE_URL', null), // إذا كنت تستخدم متغير البيئة DATABASE_URL، فعّله هنا ], ],
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38عدّل الإعدادات لـ
driver
وport
حسب نوع قاعدة البيانات المستخدمة (MySQL أو PostgreSQL). تأكد أن اسم قاعدة البيانات مطابق للقاعدة التي ستُنشئها.
إعداد خادم الويب (إنشاء موقع في ServBay)
حتى تتمكن من تصفح مشروع CakePHP عبر المستعرض، عليك إعداد موقع جديد في ServBay وتوجيهه لمجلد المشروع.
افتح لوحة تحكم ServBay
اضغط على أيقونة ServBay لفتح لوحة التحكم.
انتقل إلى تبويب "المواقع"
من قائمة التنقل الجانبية، اختر "المواقع" (قد تسمى "الاستضافة" سابقًا).
إضافة موقع جديد
اضغط على زر
+
لإضافة موقع جديد، واملأ المعلومات التالية:- الاسم: اختر اسمًا يُسهل التعرف عليه، مثل
My CakePHP Dev Site
. - النطاق (Domain): اختر نطاق محلي، مثل
servbay-cakephp-test.local
(سيقوم ServBay بتوجيهه للعنوان المحلي تلقائيًا). - نوع الموقع: اختر
PHP
. - إصدار PHP: اختر إصدارًا مناسبًا لإصدار CakePHP المستخدم (مثلاً CakePHP 4+ بحاجة إلى PHP 7.4+، و CakePHP 5+ يحتاج عادةً إلى PHP 8.1+). يمكن اختيار
8.3
. - دليل الجذر: هام جداً! جذر خادم الويب الخاص بمشروع CakePHP هو مجلد
webroot
داخل مشروعك وليس المجلد الرئيسي. يجب أن يكون المسار/Applications/ServBay/www/servbay-cakephp-app/webroot
(استبدل اسم المجلد بما يتوافق لديك).
- الاسم: اختر اسمًا يُسهل التعرف عليه، مثل
احفظ وطبق التغييرات
بعد إدخال البيانات، اضغط زر الحفظ في أسفل الشاشة. سيطلب منك ServBay تأكيد التغييرات. وافق على ذلك، وسيقوم تلقائيًا بإعداد خادم الويب (Caddy أو Nginx) للرد على نطاق الموقع الجديد وتوجيه الطلبات إلى مجلد
webroot
.
لمزيد من التوضيح حول إضافة موقع، راجع وثائق ServBay في قسم إضافة أول موقع.
التحقق من الإعدادات الأساسية
بإمكانك الآن زيارة موقعك الإلكتروني عبر المتصفح.
افتح المتصفح وادخل النطاق الذي حددته في ServBay، مثل https://servbay-cakephp-test.local
.
إذا كانت الإعدادات صحيحة، سترى صفحة الترحيب الافتراضية لـ CakePHP. هذا يعني بيئة PHP وخادم الويب وإعداد الموقع في ServBay تعمل بشكل جيد.
دمج خدمات قواعد البيانات والتخزين المؤقت
يوفر CakePHP طبقة ORM قوية وخدمات تخزين مؤقت قابلة للتخصيص يمكن دمجها بسهولة مع خدمات قاعدة البيانات والتخزين المؤقت في ServBay.
نموذج قاعدة بيانات علائقية (MySQL / PostgreSQL)
في هذا النموذج، سنوضح كيفية الاتصال بـ MySQL أو PostgreSQL عبر ORM، وإنشاء جدول users
وتنفيذ عمليات الإدخال والحذف والتعديل والاستعلام.
إنشاء قاعدة البيانات في ServBay
قبل تنفيذ الترحيلات (migrations)، أنشئ قاعدة بيانات جديدة باستخدام أدوات إدارة قواعد البيانات في ServBay مثل phpMyAdmin لـ MySQL/MariaDB، أو pgAdmin لـ PostgreSQL، أو برامج خارجية مثل Navicat/DBeaver. ستتصل عادةً على العنوان
127.0.0.1
باسم المستخدمroot
وكلمة السرpassword
. أنشئ قاعدة بيانات باسمservbay_cakephp_app
.إنشاء ملف نموذج ORM
يحتاج ORM في CakePHP إلى ملف Model لتمثيل الجدول. أنشئ ملف
UsersTable.php
ليُمثل جدولusers
.احفظ الكود التالي في
src/Model/Table/UsersTable.php
:php<?php namespace App\Model\Table; use Cake\ORM\Table; use Cake\Validation\Validator; // للضوابط والتحقق class UsersTable extends Table { /** * Initialize method * * @param array $config The configuration for the Table. * @return void */ public function initialize(array $config): void { parent::initialize($config); $this->setTable('users'); // تحديد اسم الجدول $this->setDisplayField('name'); // تعيين الحقل الافتراضي للعرض $this->setPrimaryKey('id'); // تعيين المفتاح الأساسي // إذا أردت تفعيل Timestamp // $this->addBehavior('Timestamp'); } /** * Default validation rules. * * @param \Cake\Validation\Validator $validator Validator instance. * @return \Cake\Validation\Validator */ public function validationDefault(Validator $validator): Validator { $validator ->scalar('name') ->maxLength('name', 255) ->requirePresence('name', 'create') ->notEmptyString('name'); $validator ->email('email') ->requirePresence('email', 'create') ->notEmptyString('email') ->add('email', 'unique', ['rule' => 'validateUnique', 'provider' => 'table']); // التحقق من فريدة البريد الإلكتروني return $validator; } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49إنشاء ملف ترحيل عبر Bake
ينصح CakePHP باستخدام ميزة الترحيل لإدارة هيكل قاعدة البيانات. من جذر المشروع (
/Applications/ServBay/www/servbay-cakephp-app
)، نفذ الأمر التالي لإنشاء ملف ترحيل لجدولusers
:bashbin/cake bake migration CreateUsers name:string email:string:unique
1سينتج هذا الأمر ملف ترحيل يحتوي على تعليمات لإنشاء جدول
users
مع الحقولname
وemail
(فريد).تنفيذ الترحيل
نفذ الأمر التالي لإنشاء الجدول فعليًا في قاعدة بياناتك:
bashbin/cake migrations migrate
1إذا تم بنجاح، ستجد جدول
users
قد أُنشئ في قاعدة البيانات.تأكد من إعداد الاتصال (إذا لم تقم بذلك سابقًا)
تحقق من أن إعدادات الاتصال في
config/app_local.php
ضمنDatasources.default
تتطابق مع نوع وقيم قاعدة البيانات المستخدمة.إعداد MySQL مثال:
php'Datasources' => [ 'default' => [ 'className' => \Cake\Database\Connection::class, 'driver' => \Cake\Database\Driver\Mysql::class, 'host' => '127.0.0.1', 'username' => 'root', 'password' => 'password', 'database' => 'servbay_cakephp_app', // ... بقية الإعدادات ], ],
1
2
3
4
5
6
7
8
9
10
11إعداد PostgreSQL مثال:
php'Datasources' => [ 'default' => [ 'className' => \Cake\Database\Connection::class, 'driver' => \Cake\Database\Driver\Postgres::class, 'host' => '127.0.0.1', // 'port' => '5432', // المنفذ الافتراضي 'username' => 'root', // اسم المستخدم الافتراضي 'password' => 'password', // كلمة السر الافتراضية 'database' => 'servbay_cakephp_app', // ... بقية الإعدادات ], ],
1
2
3
4
5
6
7
8
9
10
11
12
إضافة مسارات وعناصر تحكم (Controller) تجريبية
عدل ملف
config/routes.php
لإضافة المسارات الخاصة بقواعد البيانات:php// config/routes.php use Cake\Routing\RouteBuilder; use Cake\Routing\Router; use Cake\Routing\Route\DashedRoute; Router::defaultRouteClass(DashedRoute::class); Router::scope('/', function (RouteBuilder $routes) { // ... مسارات أخرى $routes->connect('/', ['controller' => 'Pages', 'action' => 'display', 'home']); // مسارات أمثلة قواعد البيانات $routes->connect('/db-add-user', ['controller' => 'Pages', 'action' => 'dbAddUser']); $routes->connect('/db-list-users', ['controller' => 'Pages', 'action' => 'dbListUsers']); // ... مسارات أخرى $routes->fallbacks(DashedRoute::class); });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18عدل ملف
src/Controller/PagesController.php
لإضافة طرق التعامل مع قاعدة البيانات:php<?php namespace App\Controller; use Cake\Http\Response; use Cake\ORM\TableRegistry; use Cake\Datasource\Exception\RecordNotFoundException; // للتعامل مع الاستثناءات class PagesController extends AppController { /** * عرض الصفحة الافتراضية * * @param array ...$path تفاصيل المسار. * @return \Cake\Http\Response|null */ public function display(...$path): ?Response { // ... الأسلوب الافتراضي للعرض return new Response(['body' => 'Hello ServBay! هذه هي الصفحة الافتراضية.']); } /** * مثال قواعد البيانات: إضافة مستخدم */ public function dbAddUser(): Response { $usersTable = TableRegistry::getTableLocator()->get('Users'); // الحصول على الجدول // إنشاء كيان مستخدم جديد $user = $usersTable->newEntity([ 'name' => 'ServBay Demo User', 'email' => 'servbay-demo@servbay.test' // مثال بريد ServBay ]); // محاولة حفظ المستخدم في قاعدة البيانات if ($usersTable->save($user)) { return new Response(['body' => 'تمت إضافة المستخدم بنجاح! رقم المستخدم: ' . $user->id]); } else { // في حال الفشل، عرض أخطاء التحقق $errors = $user->getErrors(); return new Response(['body' => 'فشل في إضافة المستخدم. الأخطاء: ' . json_encode($errors)]); } } /** * مثال قواعد البيانات: عرض المستخدمين */ public function dbListUsers(): Response { $usersTable = TableRegistry::getTableLocator()->get('Users'); // جلب جميع المستخدمين $users = $usersTable->find()->all(); // إخراج النتائج بصيغة JSON return new Response(['body' => json_encode($users->toArray())]); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58تجربة مثال قاعدة البيانات
افتح المتصفح:
- زر
https://servbay-cakephp-test.local/db-add-user
لإضافة مستخدم؛ يجب أن تظهر لك رسالة النجاح. - زر
https://servbay-cakephp-test.local/db-list-users
لرؤية قائمة المستخدمين (يجب أن يحتوي على المستخدم المضاف).
- زر
بذلك تكون قد دمجت مشروع CakePHP مع قاعدة بيانات علائقية على ServBay وأجريت العمليات الأساسية.
مثال خدمة التخزين المؤقت (Memcached / Redis)
يوفر CakePHP واجهة شاملة للتخزين المؤقت يمكن ربطها بسهولة بـ Memcached أو Redis. يأتي ServBay مثبتًا مسبقًا معه ملحقات PHP لـ Memcached و Redis، إضافة إلى الخدمات الخاصة بهم.
أولاً، تأكد من تشغيل خدمة Memcached أو Redis من "تبويب الحزم" في لوحة تحكم ServBay.
تكوين الاتصال بالتخزين المؤقت
عدل ملف
config/app_local.php
، وابحث عن قسمCache
لتكوين الاتصال.إعداد Memcached:
php// config/app_local.php 'Cache' => [ 'default' => [ 'className' => \Cake\Cache\Engine\MemcachedEngine::class, 'servers' => ['127.0.0.1:11211'], // عنوان و منفذ Memcached الافتراضي 'prefix' => 'servbay_cakephp_', // بادئة مفاتيح الكاش ], // ... إعدادات أخرى ],
1
2
3
4
5
6
7
8
9إعداد Redis:
php// config/app_local.php 'Cache' => [ 'default' => [ 'className' => \Cake\Cache\Engine\RedisEngine::class, 'host' => '127.0.0.1', 'port' => 6379, 'password' => null, 'database' => 0, 'prefix' => 'servbay_cakephp_', ], // ... إعدادات أخرى ],
1
2
3
4
5
6
7
8
9
10
11
12
اختر الخدمة التي تناسبك وقم بالتكوين عليها.
إضافة مسارات وطرق للتحكم (Controller) تجريبية
عدل ملف
config/routes.php
لإضافة مسارات التجريب للتخزين المؤقت:php// config/routes.php // ... مسارات أخرى $routes->connect('/cache-memcached', ['controller' => 'Pages', 'action' => 'cacheMemcached']); $routes->connect('/cache-redis', ['controller' => 'Pages', 'action' => 'cacheRedis']); // ... مسارات أخرى
1
2
3
4
5عدل ملف
src/Controller/PagesController.php
لإضافة طرق استخدام التخزين المؤقت:php<?php namespace App\Controller; use Cake\Http\Response; use Cake\Cache\Cache; // استيراد الكلاس الخاص بالتخزين المؤقت // ... كود آخر class PagesController extends AppController { // ... طرق أخرى (display, dbAddUser, dbListUsers) /** * مثال التخزين المؤقت: باستخدام Memcached */ public function cacheMemcached(): Response { // تأكد من تكوين 'default' على MemcachedEngine في app_local.php $cacheKey = 'servbay_memcached_test_key'; $cachedData = Cache::read($cacheKey); // محاولة جلب البيانات من التخزين المؤقت $responseBody = ''; if ($cachedData === false) { // إذا لم توجد بيانات $responseBody = 'Cache miss! تم حفظ "Hello Memcached!" في التخزين المؤقت.'; $dataToCache = 'Hello Memcached!'; Cache::write($cacheKey, $dataToCache, 'default'); } else { // في حال وجود بيانات $responseBody = 'Cache hit! البيانات: ' . $cachedData; } return new Response(['body' => $responseBody]); } /** * مثال التخزين المؤقت: باستخدام Redis */ public function cacheRedis(): Response { // تأكد من تكوين 'default' على RedisEngine في app_local.php $cacheKey = 'servbay_redis_test_key'; $cachedData = Cache::read($cacheKey); $responseBody = ''; if ($cachedData === false) { $responseBody = 'Cache miss! تم حفظ "Hello Redis!" في التخزين المؤقت.'; $dataToCache = 'Hello Redis!'; Cache::write($cacheKey, $dataToCache, 'default'); } else { $responseBody = 'Cache hit! البيانات: ' . $cachedData; } return new Response(['body' => $responseBody]); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59تجربة مثال التخزين المؤقت
افتح المتصفح:
- إذا استخدمت Memcached، زر
https://servbay-cakephp-test.local/cache-memcached
؛ سيظهر "Cache miss" في أول زيارة و"Cache hit" عند التحديث. - إذا استخدمت Redis، زر
https://servbay-cakephp-test.local/cache-redis
وستظهر نفس السلوك.
- إذا استخدمت Memcached، زر
هذا يؤكد نجاح ربط مشروعك التخزين المؤقت مع خدمات ServBay.
ملاحظات هامة
- بيانات اتصال قواعد البيانات: اسم المستخدم وكلمة السر الافتراضية (
root
/password
) في ServBay مخصصة للتطوير المحلي فقط. يجب اختيار بيانات آمنة في بيئة الإنتاج. - دليل الجذر للموقع: تأكد أن "دليل الموقع" مشير إلى مجلد
webroot
داخل مشروعك وليس المجلد الرئيسي. - متطلبات إصدار PHP: اختر إصدار PHP المناسب لإصدار CakePHP المستعمل. راجع الوثائق الرسمية للمزيد.
- منافذ ServBay: إذا احتلت المنافذ الافتراضية (مثل 80 و443) بواسطة تطبيقات أخرى، غيّر الإعدادات داخل ServBay وادخل الموقع بواسطة رقم المنفذ أو من خلال تعديل ملف hosts لنظامك.
الأسئلة الشائعة (FAQ)
- س: ظهور خطأ "الصفحة غير موجودة" عند زيارة
servbay-cakephp-test.local
؟- ج: تحقق من أن "دليل الموقع" محدد على
/Applications/ServBay/www/servbay-cakephp-app/webroot
. - تحقق من تشغيل خادم الويب في ServBay (Caddy/Nginx).
- تأكد من أن ملف hosts يشير إلى
servbay-cakephp-test.local
على127.0.0.1
. - تحقق من تكوين ملفات .htaccess أو إعدادات خادم الويب (عادةً إعدادات webroot صحيحة افتراضيًا).
- ج: تحقق من أن "دليل الموقع" محدد على
- س: فشل الاتصال بقاعدة البيانات؟
- ج: تحقق من تشغيل خدمة قاعدة البيانات (MySQL/PostgreSQL) في ServBay.
- تحقق من إعدادات الاتصال بقاعدة البيانات في
config/app_local.php
(host، port، username، password، database). - تأكد من إنشاء قاعدة البيانات
servbay_cakephp_app
.
- س: تعذر تشغيل أمـر Composer مثل (
bin/cake
)؟- ج: تحقق من أن الدليل الحالي فيه ملفات مشروع CakePHP (
/Applications/ServBay/www/servbay-cakephp-app
). - تأكد من تشغيل PHP وComposer ضمن ServBay.
- تحقق من أن php متاح في الـPATH لدى الطرفية (ServBay يضبط ذلك غالبًا)، أو استخدم الطرفية المدمجة الخاصة بـ ServBay أو اضبط PATH يدويًا.
- ج: تحقق من أن الدليل الحالي فيه ملفات مشروع CakePHP (
الملخص
أصبح بإمكانك مع ServBay إعداد بيئة تطوير CakePHP متكاملة بسرعة وسهولة. الإعدادات المدمجة لـ PHP، وComposer، وخوادم الويب، وقواعد البيانات توفر لك تجربة تطوير أكثر تركيزًا على البرمجة وليس التهيئة. تناول هذا الدليل جميع الخطوات اللازمة منذ إنشاء المشروع، والإعدادات الأساسية، وضبط خادم الويب، وصولاً إلى تكامل قواعد البيانات وخدمات التخزين المؤقت، لبدء رحلتك في تطوير مشاريع CakePHP. استفد من سهولة ServBay، وخصص وقتك لتطوير البرمجيات بدلاً من إضاعة الوقت في ضبط البيئة.