ServBay के साथ CakePHP प्रोजेक्ट बनाएँ और चलाएँ
ServBay macOS के लिए डिज़ाइन किया गया एक लोकल वेब डेवेलपमेंट एनवायरनमेंट है, जिसमें PHP, Node.js, Python, Go, Java जैसी कई लैंग्वेज़ और MySQL, PostgreSQL, MongoDB, Redis जैसे डेटाबेस सर्विसेज़ एकीकृत हैं और ये Caddy या Nginx वेब सर्वर के साथ आता है। यह डेवेलपर्स को लोकल प्रोजेक्ट आसानी से सेटअप और मैनेज करने के लिए एक सुविधाजनक और कुशल प्लेटफॉर्म उपलब्ध कराता है।
यह लेख बताएगा कि किस प्रकार आप ServBay एनवायरनमेंट में एक CakePHP प्रोजेक्ट बनाएँ, सेटअप करें और चलाएँ। CakePHP PHP आधारित एक लोकप्रिय वेब डेवेलपमेंट फ्रेमवर्क है, जो MVC (मॉडल-व्यू-कंट्रोलर) पैटर्न पर चलता है, इसकी तेज़ डेवेलपमेंट क्षमता, मजबूत ORM और इनबिल्ट सुरक्षा फीचर्स के लिए जाना जाता है। ServBay की सहूलियतों के साथ, आप टॉप क्लास CakePHP डेवेलपमेंट बहुत जल्दी शुरू कर सकते हैं।
CakePHP क्या है?
CakePHP एक ओपन-सोर्स PHP वेब एप्लिकेशन डेवेलपमेंट फ्रेमवर्क है, जो वेब एप्लिकेशन को तेज़ और संरचित अंदाज़ में बनाने के लिए आधारभूत स्ट्रक्चर उपलब्ध कराता है, वह भी लचीलापन बनाए रखते हुए। यह ‘कॉन्फ़िगरेशन से ज़्यादा कन्वेंशन’ के सिद्धांत का पालन करता है, जिससे आम डेवेलपमेंट कार्यों को सरल बनाया जाता है।
CakePHP की प्रमुख विशेषताएँ और फायदे
- MVC पैटर्न आधारित: कोड को साफ-सुथरे और व्यवस्थित ढंग से मैनेज करना आसान और विस्तार योग्य।
- तेज़ डेवेलपमेंट: कोड जनरेट करने के लिए कमांड-लाइन टूल (Bake) उपलब्ध, जिससे डेवेलपमेंट प्रक्रिया तेज़ हो जाती है।
- मजबूत ORM (ऑब्जेक्ट रिलेशनल मैपिंग): डेटाबेस इंटरैक्शन आसान, कई डेटाबेस सिस्टम्स को सपोर्ट करता है।
- इनबिल्ट सुरक्षा: CSRF प्रोटेक्शन, SQL इंजेक्शन से सुरक्षा, इनपुट वेरिफिकेशन जैसी मज़बूत सुरक्षा सुविधाएँ।
- लचीला टेम्पलेट इंजन: विभिन्न व्यू लेयर तकनीकों को सपोर्ट करता है।
- सक्रिय समुदाय और कई सारे प्लगइन: किसी भी समस्या में तेज़ी से सपोर्ट मिलना, और सुविधा विस्तार के ढेरों तरीके।
- विस्तृत डाक्यूमेंटेशन: गाइडलाइन और API रेफरेंस पूरी जानकारी के साथ।
CakePHP छोटे APIs से लेकर बड़े एंटरप्राइज सिस्टम्स तक हर किस्म के वेब एप्लिकेशन निर्माण के लिए उपयुक्त है।
ServBay का उपयोग करके CakePHP डेवेलपमेंट एनवायरनमेंट सेटअप करें
ServBay CakePHP डेवेलपमेंट के लिए तैयार इंटीग्रेटेड एनवायरनमेंट मुहैया कराता है, जिसमें शामिल हैं:
- प्रीइंस्टॉल्ड PHP इंटरप्रेटर और सामान्यत: आवश्यक एक्सटेंशंस।
- प्रीइंस्टॉल्ड Composer पैकेज मैनेजर।
- आसानी से कॉन्फ़िगर होने वाले वेब सर्वर (Caddy/Nginx)।
- एकीकृत डेटाबेस सेवाएँ (जैसे MySQL, PostgreSQL, Redis इत्यादि)।
ServBay के ज़रिए आपको इन सभी कंपोनेंट्स को मैन्युअली इंस्टाल और कॉन्फ़िगर करने की जरूरत नहीं रहती।
पूर्व-आवश्यकताएँ
शुरू करने से पहले, कृपया सुनिश्चित करें कि आपने निम्नलिखित तैयारियाँ कर ली हैं:
- ServBay इंस्टाल करें: सुनिश्चित करें कि आपने अपने macOS पर ServBay डाउनलोड और सफलतापूर्वक इंस्टॉल कर लिया है।
- ServBay सेवाएँ चालू करें: ServBay एप्लिकेशन चालू करें और आवश्यक पैकेजेस (जैसे PHP, MySQL या PostgreSQL , एवं Redis या Memcached जैसी कैश सेवाएँ) शुरू करें। इन्हें आप ServBay कंट्रोल पैनल के "पैकेजेस" टैब में मैनेज कर सकते हैं।
- ServBay के बेसिक ऑपरेशन जान लें: ServBay के अंदर वेबसाइट कैसे जोड़ना और कॉन्फ़िगर करना आता हो। यदि नहीं जानते, पहले ServBay के बेसिक यूज़ गाइड पढ़ें।
CakePHP प्रोजेक्ट बनाएँ
ServBay सुझाव देता है कि आपके सभी वेब प्रोजेक्ट फाइलें /Applications/ServBay/www
डायरेक्टरी में रखी जायें, इससे ServBay स्वतः वेबसाइट को डिटेक्ट और मैनेज कर सकता है।
टर्मिनल खोलें
macOS का टर्मिनल एप्लिकेशन ओपन करें।
ServBay वेबसाइट रूट डायरेक्टरी पर जाएँ
सर्वबे द्वारा सुझाई गई वेबसाइट डायरेक्टरी पर जाएँ:
bashcd /Applications/ServBay/www
1प्रोजेक्ट डायरेक्टरी बनाएँ
CakePHP प्रोजेक्ट के लिए एक नई सब-डायरेक्टरी बनाएँ। उदाहरण में प्रोजेक्ट का नाम
servbay-cakephp-app
रखा गया है:bashmkdir servbay-cakephp-app cd servbay-cakephp-app
1
2Composer का उपयोग कर CakePHP प्रोजेक्ट बनाएँ
ServBay के साथ Composer पहले से इंस्टॉल रहता है। प्रोजेक्ट डायरेक्टरी में CakePHP प्रोजेक्ट क्रिएट करें:
bashcomposer create-project --prefer-dist cakephp/app .
1यह कमांड CakePHP का नवीनतम स्थिर वर्शन तथा उसके डिपेंडेंसीज़ डाउनलोड करके वर्तमान डायरेक्टरी (
.
) में इंस्टॉल कर देगा।ORM ड्राइवर इंस्टाल करें (यदि PostgreSQL उपयोग करें)
अगर आप PostgreSQL डेटाबेस इस्तेमाल करने वाले हैं, तो CakePHP के लिए संबंधित ORM ड्राइवर इंस्टाल करें:
bashcomposer require cakephp/orm-pgsql
1MySQL के लिए अतिरिक्त ड्राइवर की जरूरत नहीं होती, यह डिफ़ॉल्ट डिपेंडेंसी में शामिल है।
आरंभिक सेटिंग्स
प्रोजेक्ट बनाने के बाद कुछ बेसिक सेटिंग्स करनी होंगी, खासकर डेटाबेस कनेक्शन की।
एनवायरनमेंट वैरिएबल्स और डेटाबेस कनेक्शन सेट करें
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', // ServBay में डिफ़ॉल्ट लोकल डेटाबेस सर्वर //'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, /** * यदि आप "user" जैसे शब्द टेबल नाम में उपयोग करते हैं तो क्वोटिंग ऑन कर दें। * अन्यथा false छोड़ सकते हैं। * न जानने पर true रखें। */ 'quoteIdentifiers' => false, /** * वर्तमान लिमिटेशन: * - अधिकतर ड्राइवर्स PDO विकल्पों के ज़रिए isolation level सेट करना सपोर्ट नहीं करते। * - सभी ड्राइवर्स charset सेटिंग PDO से सपोर्ट नहीं करते। * - पैकेज्ड ड्राइवर्स (जैसे CakePHP का Postgres) PDO options सपोर्ट नहीं करते। * Postgres में केवल 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अपनी डेटाबेस टाइप (MySQL, PostgreSQL) के अनुसार
driver
औरport
को एडजस्ट करें।database
नाम वही रखें जिस नाम से आप डेटाबेस बनाएंगे।
वेब सर्वर कॉन्फ़िगर करें (ServBay में वेबसाइट बनाना)
CakePHP प्रोजेक्ट को ब्राउज़र से एक्सेस करने के लिए ServBay में अपनी प्रोजेक्ट डायरेक्टरी की ओर इशारा करने वाली एक वेबसाइट बनानी होगी।
ServBay कंट्रोल पैनल खोलें
सर्वबे आइकन पर क्लिक करके कंट्रोल पैनल खोलें।
"वेबसाइट" टैब पर जाएँ
बाएं साइडबार में "वेबसाइट" (पहले 'होस्ट') चुनें।
नई वेबसाइट जोड़ें
नीचे दिख रहे
+
बटन पर क्लिक करके नई वेबसाइट जोड़ें। इन जानकारियों को भरें:- नाम (Name): पहचानने योग्य नाम दे जैसे
My CakePHP Dev Site
। - डोमेन (Domain): लोकल डेवेलपमेंट के लिए एक डोमेन सेट करें, जैसे
servbay-cakephp-test.local
। ServBay इसे ऑटोमेटिकली लोकल पर मैप कर देगा। - वेबसाइट टाइप (Site Type):
PHP
चुनें। - PHP वर्शन (PHP Version): CakePHP के वर्शन के लिए उपयुक्त PHP वर्शन चुनें (CakePHP 4+ हेतु PHP 7.4+, और 5+ हेतु PHP 8.1+), जैसे
8.3
। - डॉक्यूमेंट रूट (Document Root): महत्वपूर्ण! यहाँ प्रोजेक्ट डायरेक्टरी नहीं, बल्कि उसके अंदर का
webroot
निर्देशित करें। उदाहरण:/Applications/ServBay/www/servbay-cakephp-app/webroot
(अपनी डायरेक्टरी के अनुसार नाम बदलें)।
- नाम (Name): पहचानने योग्य नाम दे जैसे
सेव करें और बदलाव लागू करें
जानकारी भरकर नीचे दाएँ कोने में "सेव" बटन दबाएँ। ServBay पूछेगा कि आप बदलाव लागू करना चाहते हैं, पुष्टि करें। ServBay स्वतः आपके वेब सर्वर (Caddy/Nginx) को
servbay-cakephp-test.local
पर सेट कर देगा और ट्रैफिक को आपके प्रोजेक्ट केwebroot
डायरेक्टरी की ओर भेज देगा।
डिटेल स्टेप्स के लिए ServBay डाक्यूमेंटेशन का पहली वेबसाइट जोड़ना सेक्शन देखें।
बेसिक सेटअप वेरीफाई करें
अब आप ब्राउज़र में अपनी वेबसाइट खोल सकते हैं।
ब्राउज़र खोलें और ServBay में सेट डोमेन जैसे https://servbay-cakephp-test.local
खोलें।
यदि सब कुछ सही सेट है तो आपको CakePHP का डिफ़ॉल्ट वेलकम पेज दिखेगा। इसका मतलब PHP एनवायरनमेंट, वेब सर्वर और ServBay कॉन्फ़िगरेशन ठीक से चल रहे हैं।
डेटाबेस और कैश सेवाएँ इंटीग्रेट करें
CakePHP का ORM और कैशिंग एब्सट्रैक्शन लेयर ServBay के डेटाबेस और कैश सेवाओं को आसानी से इंटीग्रेट करने देता है।
रिलेशनल डेटाबेस उदाहरण (MySQL / PostgreSQL)
यह उदाहरण बताता है कि कैसे CakePHP ORM के साथ ServBay के MySQL या PostgreSQL डेटाबेस से कनेक्शन करें, users
टेबल बनाएँ और CRUD (क्रिएट, रीड, अपडेट, डिलीट) ऑपरेशन करें।
ServBay में नया डेटाबेस बनाएँ
माइग्रेशन करने से पहले ServBay के डेटाबेस सर्वर में नया डेटाबेस बनाएँ। ServBay द्वारा दिए गए डेटाबेस मैनेजमेंट टूल्स (जैसे MySQL/MariaDB के लिए phpMyAdmin, PostgreSQL के लिए pgAdmin, या Navicat/DBeaver आदि थर्ड पार्टी टूल्स) की मदद से
127.0.0.1
पर कनेक्ट करें, यूज़रroot
, पासवर्डpassword
डालें, और नया डेटाबेसservbay_cakephp_app
नाम से बनाएं।ORM Model फाइल बनाएँ
CakePHP ORM के लिए एक 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']); // email की यूनिकनेस 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
49Bake टूल से माइग्रेशन फाइल बनाएँ
CakePHP माइग्रेशन से डेटाबेस स्ट्रक्चर मैनेज करने की सलाह देता है। प्रोजेक्ट रूट (जैसे
/Applications/ServBay/www/servbay-cakephp-app
) में यह रन करें:bashbin/cake bake migration CreateUsers name:string email:string:unique
1यह
users
टेबल के लिए माइग्रेशन फाइल बनाएगा जिसमेंname
(string) औरemail
(string, unique) होंगे।डाटाबेस माइग्रेशन रन करें
माइग्रेशन कमांड चलाएँ जिससे
users
टेबल डेटाबेस में बन जाये: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
11PostgreSQL:
php'Datasources' => [ 'default' => [ 'className' => \Cake\Database\Connection::class, 'driver' => \Cake\Database\Driver\Postgres::class, 'host' => '127.0.0.1', // 'port' => '5432', 'username' => 'root', // ServBay डिफ़ॉल्ट 'password' => 'password', // ServBay डिफ़ॉल्ट 'database' => 'servbay_cakephp_app', // ... अन्य सेटिंग्स ], ],
1
2
3
4
5
6
7
8
9
10
11
12
रूट और कंट्रोलर मेथड्स जोड़ें
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
18src/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 { /** * Displays a view * * @param array ...$path Path segments. * @return \Cake\Http\Response|null */ public function display(...$path): ?Response { // ... डिफॉल्ट display मेथड return new Response(['body' => 'Hello ServBay! This is the default page.']); } /** * डेटाबेस उदाहरण: यूज़र जोड़ें */ public function dbAddUser(): Response { $usersTable = TableRegistry::getTableLocator()->get('Users'); // नया यूज़र एंटिटी बनाएं $user = $usersTable->newEntity([ 'name' => 'ServBay Demo User', 'email' => '[email protected]' ]); // डेटाबेस में सेव करें if ($usersTable->save($user)) { return new Response(['body' => 'User added successfully! User ID: ' . $user->id]); } else { // सेव न होने पर संभावित वेलिडेशन एरर $errors = $user->getErrors(); return new Response(['body' => 'Failed to add user. Errors: ' . 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
खोलें - एक यूज़र जुड़ जाएगा और success message दिखेगा।https://servbay-cakephp-test.local/db-list-users
खोलें - सभी यूज़र्स की लिस्ट JSON में दिखेगी (पहला अभी जोड़ा हुआ User दिखेगा)।
इन्हीं स्टेप्स से आप CakePHP प्रोजेक्ट को ServBay के रिलेशनल डेटाबेस से जोड़ सकते हैं और बेसिक ORM ऑपरेशन आजमा सकते हैं।
कैश सर्विसेज़ उदाहरण (Memcached / Redis)
CakePHP की यूनिफाइड कैशिंग API से आप Memcached या Redis जैसे अलग-अलग कैश इंजन तुरंत उपयोग कर सकते हैं। ServBay, PHP के लिए Memcached और Redis दोनों एक्सटेंशनों के साथ आता है और सेवाएँ भी देता है।
पहले, यह सुनिश्चित करें कि ServBay कंट्रोल पैनल के "पैकेजेस" टैब में Memcached या Redis चालू है।
कैश कनेक्शन कॉन्फ़िगर करें
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'], // ServBay का डिफ़ॉल्ट Memcached पता व पोर्ट 'prefix' => 'servbay_cakephp_', // कैश-की प्रीफ़िक्स ], // ... अन्य कैशिंग सेटिंग्स ],
1
2
3
4
5
6
7
8
9Redis उदाहरण:
php// config/app_local.php 'Cache' => [ 'default' => [ 'className' => \Cake\Cache\Engine\RedisEngine::class, 'host' => '127.0.0.1', // Redis एड्रेस 'port' => 6379, // Redis पोर्ट 'password' => null, // पासवर्ड हो तो दें 'database' => 0, // Redis DB इंडेक्स 'prefix' => 'servbay_cakephp_', ], // ... अन्य कैशिंग सेटिंग्स ],
1
2
3
4
5
6
7
8
9
10
11
12
अपनी कैश सर्विस के अनुसार उपयुक्त सेटिंग करें।
रूट और कंट्रोलर मेथड्स जोड़ें
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
5src/Controller/PagesController.php
में यह मेथड्स जोड़ें:php<?php namespace App\Controller; use Cake\Http\Response; use Cake\Cache\Cache; // ... अन्य use स्टेटमेंट्स class PagesController extends AppController { // ... अन्य मेथड्स (display, dbAddUser, dbListUsers) /** * कैश उदाहरण: Memcached का उपयोग */ public function cacheMemcached(): Response { // app_local.php में 'default' cache को MemcachedEngine पर सेट करें $cacheKey = 'servbay_memcached_test_key'; $cachedData = Cache::read($cacheKey); $responseBody = ''; if ($cachedData === false) { // कैश मिस $responseBody = 'Cache miss! Writing "Hello Memcached!" to cache.'; $dataToCache = 'Hello Memcached!'; Cache::write($cacheKey, $dataToCache, 'default'); } else { // कैश हिट $responseBody = 'Cache hit! Data from cache: ' . $cachedData; } return new Response(['body' => $responseBody]); } /** * कैश उदाहरण: Redis का उपयोग */ public function cacheRedis(): Response { // app_local.php में 'default' cache को RedisEngine पर सेट करें $cacheKey = 'servbay_redis_test_key'; $cachedData = Cache::read($cacheKey); $responseBody = ''; if ($cachedData === false) { // कैश मिस $responseBody = 'Cache miss! Writing "Hello Redis!" to cache.'; $dataToCache = 'Hello Redis!'; Cache::write($cacheKey, $dataToCache, 'default'); } else { // कैश हिट $responseBody = 'Cache hit! Data from cache: ' . $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
60
61कैश उदाहरण देखें
ब्राउज़र खोलें:
- यदि आपने Memcached कॉन्फ़िगर किया, तो
https://servbay-cakephp-test.local/cache-memcached
पर जाएँ। पहली बार "Cache miss" और रीफ्रेश करने पर "Cache hit" दिखेगा। - Redis के लिए
https://servbay-cakephp-test.local/cache-redis
खोलें और यही व्यवहार देखें।
- यदि आपने Memcached कॉन्फ़िगर किया, तो
इस प्रकार आपका CakePHP प्रोजेक्ट सफलतापूर्वक ServBay की कैश सेवाओं से जुड़ जाता है।
महत्वपूर्ण बातें
- डेटाबेस क्रेडेंशियल्स: ServBay के डिफ़ॉल्ट डेटाबेस यूज़रनेम/पासवर्ड (
root
/password
) केवल लोकल डेवेलपमेंट के लिए हैं, प्रोडक्शन में सुरक्षित क्रेडेंशियल्स का इस्तेमाल करें। - वेबसाइट रूट: वेबसाइट की "डॉक्यूमेंट रूट" हमेशा CakePHP के
webroot
निर्देशिका पर सेट करें, पूरे प्रोजेक्ट फोल्डर पर नहीं। - PHP वर्शन: चुना हुआ PHP वर्शन आपके CakePHP वर्शन के अनुकूल होना चाहिए। आवश्यकता अनुसार CakePHP डाक्यूमेंटेशन देखें।
- ServBay पोर्ट: यदि पोर्ट 80 या 443 पहले ही किसी प्रोग्राम द्वारा उपयोग हो रहे हैं, तो ServBay की सेटिंग्स में पोर्ट बदलें और ब्राउज़र में होस्ट्स फाइल/पोर्ट नंबर अनुसार खोलें।
अक्सर पूछे जाने वाले प्रश्न (FAQ)
- प्रश्न:
servbay-cakephp-test.local
खोलने पर "Page Not Found" या 404 error मिलती है?- उत्तर: सर्वबे में वेबसाइट का "डॉक्यूमेंट रूट" क्या सचमुच
/Applications/ServBay/www/servbay-cakephp-app/webroot
है, चेक करें। - क्या ServBay का वेब सर्वर (Caddy/Nginx) चालू है?
- अपने सिस्टम के hosts फाइल में
servbay-cakephp-test.local
से127.0.0.1
की मैपिंग चेक करें (अमूमन ServBay खुद कर देता है)। - क्या CakePHP प्रोजेक्ट की
.htaccess
या वेब सर्वर फाइल्स सही हैं (webroot/.htaccess
आमतौर पर सही होती है)?
- उत्तर: सर्वबे में वेबसाइट का "डॉक्यूमेंट रूट" क्या सचमुच
- प्रश्न: डेटाबेस कनेक्शन फेल हो रहा है?
- उत्तर: देखिए कि संबंधित डेटाबेस सर्विस (MySQL/PostgreSQL) चालू हो।
config/app_local.php
में होस्ट, पोर्ट, यूज़रनेम, पासवर्ड, डेटाबेस सही दी गयी हैं?- क्या डेटाबेस
servbay_cakephp_app
क्रिएट किया गया है?
- प्रश्न: Composer कमांड (
bin/cake
) नहीं चल रही?- उत्तर: क्या आप टर्मिनल में CakePHP प्रोजेक्ट रूट डायरेक्टरी में हैं (
/Applications/ServBay/www/servbay-cakephp-app
)? - क्या ServBay में PHP और Composer पैकेज चालू हैं?
- क्या टर्मिनल में
php
कमांड चल रही है? (ServBay प्राय: PATH में PHP जोड़ता है, न हो तो PATH सेट करें या ServBay का टर्मिनल उपयोग करें।)
- उत्तर: क्या आप टर्मिनल में CakePHP प्रोजेक्ट रूट डायरेक्टरी में हैं (
निष्कर्ष
ServBay की मदद से आप macOS पर CakePHP प्रोजेक्ट का लोकल डेवेलपमेंट एनवायरनमेंट बेहद आसान और कुशलता से सेटअप कर सकते हैं। इसमें प्रीइंस्टॉल्ड PHP, Composer, वेब सर्वर और डेटाबेस सेवाएँ शामिल हैं, जिससे आपकी सेटअप प्रक्रिया आसान हो जाती है। इस लेख में प्रोजेक्ट निर्माण, बेसिक कॉन्फ़िगरेशन, सर्वर सेटिंग्स और डेटाबेस/कैश सेवाओं को इंटीग्रेट करने की पूरी प्रक्रिया दी गई है। ServBay की सहूलियत से आप कन्फ़िगरेशन के बजाय कोड पर ध्यान केंद्रित कर सकते हैं और तेज़ी से CakePHP डेवेलपमेंट शुरू कर सकते हैं।