macOS पर ServBay के साथ PHPixie प्रोजेक्ट बनाएँ और चलाएँ
PHPixie एक हल्का और उच्च-प्रदर्शन वाला PHP फ्रेमवर्क है, जिसे तेज वेब एप्लिकेशन डेवेलपमेंट के लिए डिज़ाइन किया गया है। यह HMVC (Hierarchical Model-View-Controller) डिज़ाइन पैटर्न का पालन करता है, और स्वच्छ कोड संरचना तथा कुशल प्रोसेसिंग की पेशकश करता है। PHPixie को इसकी सरलता, फ्लेक्सिबिलिटी और प्रदर्शन के लिए कई डेवेलपर्स द्वारा पसंद किया जाता है।
PHPixie की मुख्य विशेषताएँ एवं लाभ
- हल्का: PHPixie का कोर सिस्टम बेहद छोटा है, जिसमें केवल आवश्यक कंपोनेंट्स शामिल हैं; इसका स्टार्ट और रन समय काफी तेज़ है।
- उच्च प्रदर्शन: फ्रेमवर्क की डिज़ाइन एफिशियंसी पर केंद्रित है, जो समांतर अनुरोधों को भी प्रभावी ढंग से संभाल सकता है—यह उच्च-प्रदर्शन वाली ऐप्स के लिए उपयुक्त है।
- सीखने में आसान: इसमें स्पष्ट व सरल API और विस्तृत डॉक्स उपलब्ध हैं, जिससे डेवलपर्स इसे तेज़ी से सीख सकते हैं।
- लचीलापन (फ्लेक्सिबिलिटी): फ्रेमवर्क की संरचना loosely coupled है, जिससे डेवेलपर्स प्रोजेक्ट जरूरत के अनुसार थर्ड-पार्टी लाइब्रेरी व कंपोनेंट्स जोड़ सकते हैं।
- सक्रिय कम्यूनिटी सपोर्ट: यह एक सक्रिय कम्यूनिटी के साथ आता है, जिसमें थर्ड-पार्टी एक्सटेंशन और पर्याप्त सहायता संसाधन मौजूद हैं।
PHPixie डेवेलपर्स को तेज़ी से, बेहतरीन गुणवत्ता एवं प्रदर्शन वाली वेब एप्लिकेशन बनाने में सक्षम बनाता है—चाहे प्रोजेक्ट छोटा हो या एंटरप्राइज़-लेवल।
ServBay का उपयोग कर PHPixie प्रोजेक्ट बनाना और चलाना
यह लेख बताता है कि किस तरह ServBay द्वारा मिले लोकल वेब डेवेलपमेंट एनवायरनमेंट को उपयोग में लाकर PHPixie प्रोजेक्ट बनाया और चलाया जाए। इसमें हम ServBay का PHP एनवायरनमेंट, Composer डिपेंडेंसी मैनेजर और "Websites" फीचर का उपयोग करेंगे ताकि वेब सर्वर कॉन्फ़िगर कर, प्रोजेक्ट को आसानी से लोकल मशीन पर ऐक्सेस व विभिन्न डेटाबेस/कैश सेवाओं के साथ एकीकृत किया जा सके।
आवश्यक पूर्व-शर्तें
- आपके macOS पर ServBay इंस्टॉल और रनिंग होनी चाहिए। ServBay PHP, Composer, विभिन्न डेटाबेस (MySQL, PostgreSQL, MongoDB, Redis आदि) और Caddy वेब सर्वर के साथ आता है।
- आपको बेसिक कमांड लाइन ऑपरेशन्स की जानकारी होनी चाहिए।
PHPixie प्रोजेक्ट बनाएँ
अनुशंसित वेबसाइट स्टोरेज स्थान
ServBay आपको अपनी लोकल वेबसाइट/प्रोजेक्ट्स को /Applications/ServBay/www
डायरेक्टरी में रखने की सलाह देता है—प्रबंधन और ServBay एक्सेस कंट्रोल के लिए।
- Composer इंस्टॉलेशन की पुष्टि करें: ServBay के साथ Composer पहले से इंस्टॉल होता है; कोई अतिरिक्त इंस्टॉलेशन आवश्यक नहीं। पुष्टि के लिए टर्मिनल में
composer --version
कमांड दें। - प्रोजेक्ट डायरेक्टरी बनाएँ: ServBay द्वारा सुझाए गए रूट डायरेक्टरी में एक नया फ़ोल्डर बनाएं और उसमें जाएं:bash
cd /Applications/ServBay/www mkdir servbay-phpixie-app cd servbay-phpixie-app
1
2
3 - Composer से PHPixie प्रोजेक्ट बनाएँ: Composer कमांड चला कर PHPixie का प्रोजेक्ट टेम्प्लेट डाउनलोड करें:bashComposer आपके प्रोजेक्ट के लिए आवश्यक PHPixie और सभी डिपेंडेंसी फ़ाइलें डाउनलोड करेगा।
composer create-project phpixie/project .
1
वेब सर्वर कॉन्फ़िगर करें
ServBay के Websites फीचर का उपयोग कर Caddy वेब सर्वर सेट करें ताकि यह आपके PHPixie प्रोजेक्ट को सही ढंग से पॉइंट और सर्व कर सके।
ServBay ऐप यूज़र-इंटरफेस खोलें।
Websites लिस्ट में जाएं।
नई वेबसाइट जोड़ें।
वेबसाइट की इनफॉर्मेशन भरें:
- नाम: जैसे
My First PHPixie Dev Site
(यह ServBay इंटरनल पहचान के लिए है)। - डोमेन: जैसे
servbay-phpixie-test.local
(ब्राउज़र में यही लोकल डेवेलपमेंट डोमेन ऐक्सेस करेंगे)। - वेबसाइट टाइप:
PHP
चुनें। - PHP वर्शन: अपनी जरूरत के मुताबिक PHP वर्शन चुनें, जैसे
8.3
। - रूट डायरेक्टरी (Document Root): अपने प्रोजेक्ट के
web
डायरेक्टरी को पॉइंट करें:/Applications/ServBay/www/servbay-phpixie-app/web
।
/web
डायरेक्टरी क्यों चुनें?PHPixie प्रोजेक्ट का एंट्री फाइल
web/index.php
है। सुरक्षा और सर्वोत्तम प्रैक्टिस के लिए, वेब सर्वर की रूट डायरेक्टरी सीधे इसी डायरेक्टरी को पॉइंट करनी चाहिए न कि पूरे प्रोजेक्ट फोल्डर को। इससे आपके प्रोजेक्ट की संवेदनशील फ़ाइलें (जैसे कॉन्फ़िग फाइल, vendor डायरेक्टरी आदि) वेब के जरिए एक्सेस नहीं की जा सकतीं।- नाम: जैसे
कॉन्फ़िगरेशन सेव करें। ServBay Caddy सर्वर व लोकल hosts फाइल को खुद अपडेट कर देगा (यदि ज़रूरी), ताकि
servbay-phpixie-test.local
डोमेन आपके लोकल सर्वर को पॉइंट करे।
विस्तारित विवरण हेतु देखें: पहली वेबसाइट जोड़ें।
डेमो कोड जोड़ें
टेस्ट करने के लिए कि सब कुछ सही से काम कर रहा है और डेटाबेस/कैश संपर्क सही स्थापित है, प्रोजेक्ट में यह डेमो कोड जोड़ें—
डेमो कंट्रोलर बनाएँ:
src/App/HTTP/Controller/Home.php
फाइल में नीचे दिया कोड डालें। (यदि फ़ोल्डर या फाइल नहीं है तो बनाएँ।)php<?php namespace App\HTTP\Controller; use PHPixie\HTTP\Request; use PHPixie\Template; use PHPixie\Database\Query; // Query क्लास इम्पोर्ट करें class Home extends \PHPixie\Controller { protected $template; public function __construct(Template $template) { $this->template = $template; } // Default Home action public function action_index(Request $request) { // assets/templates/app/home.php टेम्प्लेट रेंडर करें return $this->template->render('app:home'); } // Memcached डेमो action public function action_memcached(Request $request) { $cache = $this->components->cache(); $cache->set('key', 'Hello Memcached from ServBay!', 60); // डेटा स्टोर करें, वैलिड 60 सेकंड $value = $cache->get('key'); // डेटा प्राप्त करें return $this->response()->string($value); // स्ट्रिंग रिस्पांस लौटाएँ } // Redis डेमो action public function action_redis(Request $request) { $redis = $this->components->redis(); $redis->set('key', 'Hello Redis from ServBay!'); // डेटा स्टोर करें $value = $redis->get('key'); // डेटा प्राप्त करें return $this->response()->string($value); // स्ट्रिंग रिस्पांस लौटाएँ } // MySQL/PostgreSQL में यूज़र जोड़ने वाला डेमो action public function action_add_user(Request $request) { // डेटाबेस कंपोनेंट से क्वेरी बिल्डर पाएं $query = $this->components->database()->query(); // 'users' टेबल में नया यूज़र डाटा डालें $query->insert('users')->data([ 'name' => 'ServBay Demo User', 'email' => 'demo-' . uniqid() . '@servbay.test', // यूनिक ईमेल इस्तेमाल करें ])->execute(); // डाटा इंसर्ट करें return $this->response()->string('User added successfully.'); // सफल संदेश लौटाएँ } // MySQL/PostgreSQL: यूज़र्स लिस्ट करने वाला डेमो action public function action_list_users(Request $request) { // डेटाबेस कंपोनेंट से क्वेरी बिल्डर पाएं $query = $this->components->database()->query(); // 'users' टेबल के सभी यूजर्स प्राप्त करें $users = $query->select('*')->from('users')->execute()->fetchAll(); // सभी रिजल्ट्स प्राप्त करें return $this->response()->json($users); // JSON फॉर्मेट में यूज़र लिस्ट लौटाएँ } }
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
62
63
64
65
66
67डेमो टेम्प्लेट बनाएँ:
assets/templates/app/home.php
फाइल में नीचे दिया कोड डालें (फोल्डर/फाइल नहीं है तो पहले बनाएँ)।php<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>ServBay पर PHPixie में स्वागत है</title> <style> body { font-family: sans-serif; line-height: 1.6; margin: 20px; } h1 { color: #333; } p { margin-bottom: 15px; } code { background-color: #f4f4f4; padding: 2px 5px; border-radius: 4px; } ul { list-style: none; padding: 0; } li { margin-bottom: 10px; } li a { text-decoration: none; color: #007bff; } li a:hover { text-decoration: underline; } </style> </head> <body> <h1>ServBay पर PHPixie में स्वागत है</h1> <p>यह पेज आपके ServBay पर रन कर रहे PHPixie एप्लिकेशन द्वारा डायनामिकली जेनरेट किया जा रहा है।</p> <h2>डेमो फ़ीचर लिंक्स:</h2> <ul> <li><a href="/home/memcached">Memcached टेस्ट करें</a></li> <li><a href="/home/redis">Redis टेस्ट करें</a></li> <li><a href="/home/add_user">डेटाबेस में यूज़र जोड़ें</a></li> <li><a href="/home/list_users">डेटाबेस के यूज़र्स लिस्ट करें</a></li> </ul> <p>अनुरोध है कि आप सम्बंधित डेटाबेस व कैश कॉन्फ़िगरेशन स्टेप्स पूर्ण कर लें।</p> </body> </html>
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
बेसिक वेबसाइट ऐक्सेस करें
ServBay वेबसाइट कॉन्फ़िगरेशन और डेमो कोड जोड़ने के बाद, अब आप अपने लोकल डोमेन को ब्राउज़र में ओपन करें—
- ब्राउज़र खोलकर
https://servbay-phpixie-test.local
जाएँ। - आपको "ServBay पर PHPixie में स्वागत है" शीर्षक वाली पेज और कुछ डेमो फ़ीचर लिंक दिखने चाहिए।
यदि पेज ओपन न हो, तो निम्नलिखित जाँचें:
- क्या ServBay रन कर रहा है?
- क्या आपकी वेबसाइट कॉन्फ़िग्रेशन (डोमेन, टाइप, दस्तावेज़ रूट) सही है?
- क्या लोकल hosts फाइल में
servbay-phpixie-test.local
सही तरीके से पॉइंट हो रही है? (आम तौर पर ServBay इसे स्वयं संभालता है।) - क्या ServBay में चयनित PHP संस्करण सक्षम है?
डेटाबेस और कैश इंटीग्रेशन उदाहरण
PHPixie कई डेटाबेस व कैशिंग सिस्टम को नैटिवली सपोर्ट करता है। ServBay MySQL, PostgreSQL, Redis, Memcached आदि जैसे टूल्स के साथ आता है, जिन्हें आप PHPixie प्रोजेक्ट से आसानी से कनेक्ट कर सकते हैं।
महत्वपूर्ण: डेटाबेस ऑपरेशन से पहले, सुनिश्चित करें कि संबंधित डेटाबेस सेवा (जैसे MySQL या PostgreSQL) ServBay में चालू है और आपने प्रोजेक्ट के लिए आवश्यक डेटाबेस सेटअप कर लिया है। इस उदाहरण में हमने डेटाबेस का नाम servbay_phpixie_app
रखा है। डेटाबेस बनाने के लिए ServBay द्वारा दिए गए टूल्स (Sequel Ace, Postico, TablePlus आदि) या कमांड लाइन का इस्तेमाल करें। ServBay का डिफ़ॉल्ट यूजर अधिकतर root
और पासवर्ड password
होता है (ज़रूर अपनी सेटिंग्स जांचें)।
डेटाबेस कनेक्शन कॉन्फ़िगर करें
आपके द्वारा चुने गए डेटाबेस प्रकार (MySQL या PostgreSQL) के अनुसार प्रोजेक्ट रूट में assets/config/database.php
फाइल एडिट करें। ServBay का डिफ़ॉल्ट डेटाबेस एड्रेस साधारणतया 127.0.0.1
होता है।
MySQL कॉन्फ़िगरेशन उदाहरण (assets/config/database.php
):
php
<?php
return [
'default' => [
'driver' => 'pdo',
// connection स्ट्रिंग अपनी डेटाबेस और ServBay सेटिंग्स के अनुसार एडजस्ट करें
'connection' => 'mysql:host=127.0.0.1;dbname=servbay_phpixie_app',
'user' => 'root', // ServBay डिफ़ॉल्ट यूजर
'password' => 'password', // ServBay डिफ़ॉल्ट पासवर्ड (अपनी सेटिंग के अनुसार बदले)
'options' => []
]
];
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
PostgreSQL कॉन्फ़िगरेशन उदाहरण (assets/config/database.php
):
php
<?php
return [
'default' => [
'driver' => 'pdo',
// connection स्ट्रिंग अपनी डेटाबेस और ServBay सेटिंग्स के अनुसार एडजस्ट करें
'connection' => 'pgsql:host=127.0.0.1;dbname=servbay_phpixie_app',
'user' => 'root', // ServBay डिफ़ॉल्ट यूजर
'password' => 'password', // ServBay डिफ़ॉल्ट पासवर्ड (अपनी सेटिंग के अनुसार बदले)
'options' => []
]
];
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
डेटाबेस तालिका बनाएँ (माइग्रेशन के ज़रिए)
PHPixie कमांडलाइन टूल्स के साथ डेटाबेस माइग्रेशन मैनेज करने की सुविधा देता है, जिससे डेटाबेस संरचना को version control किया जा सकता है।
- टर्मिनल खोलें: अपने PHPixie प्रोजेक्ट की रूट डायरेक्टरी में जाएं:bash
cd /Applications/ServBay/www/servbay-phpixie-app
1 - माइग्रेशन फाइल बनाएँ: PHPixie CLI टूल से नया माइग्रेशन फाइल जनरेट करें (यहाँ हम
users
टेबल निर्माण की माइग्रेशन बना रहे हैं):bashphp pixie generate:migration create_users_table
1assets/migrations
डायरेक्टरी में टाइमस्टैम्प समेत नया फाइल बन जाएगा। - माइग्रेशन फाइल एडिट करें:
assets/migrations
के अंदर नई फाइल (जैसेYYYY_MM_DD_HHMMSS_create_users_table.php
) खोलें,up()
औरdown()
में टेबल स्ट्रक्चर डिफाइन करें:php<?php use PHPixie\Database\Migration; use PHPixie\Database\Schema\Table; class CreateUsersTable extends Migration { public function up() { // schema बिल्डर से 'users' टेबल बनाएँ $this->schema->create('users', function(Table $table) { $table->increments('id'); // ऑटो-इंक्रीमेंट PK $table->string('name'); // नाम कॉलम $table->string('email')->unique(); // ईमेल कॉलम, यूनिक $table->timestamps(); // created_at और updated_at टाइमस्टैम्प कॉलम }); } public function down() { // schema बिल्डर से 'users' टेबल हटाएँ $this->schema->drop('users'); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 - माइग्रेशन रन करें: प्रोजेक्ट रूट में टर्मिनल से—bashमाइग्रेशन सफल होने पर टर्मिनल में संदेश दिख जाएगा। चाहें तो डेटाबेस मैनेजमेंट टूल्स से
php pixie migrate
1servbay_phpixie_app
मेंusers
टेबल की पुष्टि करें।
रिलेशनल डेटाबेस का उपयोग (MySQL/PostgreSQL)
ऊपर दिए गए कंट्रोलर (src/App/HTTP/Controller/Home.php
) में action_add_user
और action_list_users
द्वारा PHPixie के डेटाबेस कंपोनेंट से MySQL/PostgreSQL के साथ इंटरैक्शन दिखाया गया है—
- यूज़र जोड़ें:
https://servbay-phpixie-test.local/home/add_user
पर जाएँ, एक नया यूज़रusers
टेबल में जुड़ जाएगा। - यूज़र्स लिस्ट करें:
https://servbay-phpixie-test.local/home/list_users
पर जाएँ, सभी यूज़र्स का JSON लिस्ट लौटेगा।
NoSQL डेटाबेस का कॉन्फ़िगरेशन और इस्तेमाल (Memcached/Redis)
ServBay Memcached व Redis तथा इनके PHP एक्सटेंशन्स पहले से इंस्टॉल करके देता है—बस आपको PHPixie में इनका कॉन्फ़िगरेशन करना है।
Memcached कॉन्फ़िग (assets/config/cache.php):
assets/config/cache.php
फाइल एडिट/बनाएँ और इसमें—
php
<?php
return [
'default' => [
'driver' => 'memcached',
'servers' => [
[
'host' => '127.0.0.1', // ServBay Memcached का डिफ़ॉल्ट एड्रेस
'port' => 11211, // डिफ़ॉल्ट पोर्ट
'weight' => 100,
],
],
],
];
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
Redis कॉन्फ़िग (assets/config/redis.php):
assets/config/redis.php
फाइल एडिट/बनाएँ, और इसमें—
php
<?php
return [
'default' => [
'hostname' => '127.0.0.1', // ServBay Redis का डिफ़ॉल्ट एड्रेस
'port' => 6379, // डिफ़ॉल्ट पोर्ट
'timeout' => 0,
'database' => 0, // Redis डेटाबेस इंडेक्स
],
];
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
Memcached/Redis का इस्तेमाल:
ऊपर के कंट्रोलर (src/App/HTTP/Controller/Home.php
) में action_memcached
और action_redis
मेथड्स PHPixie के कैश कंपोनेंट्स (Memcached या Redis कॉन्फ़िग आधार पर) का यूज़ दिखाते हैं—
- Memcached टेस्ट करें:
https://servbay-phpixie-test.local/home/memcached
द्वारा एक की-वैल्यू पेयर Memcached में स्टोर, रीड और डिस्प्ले करें। - Redis टेस्ट करें:
https://servbay-phpixie-test.local/home/redis
से Redis में की-वैल्यू स्टोर, रीड और डिस्प्ले करें।
सुनिश्चित करें कि ServBay में Memcached और Redis दोनों सर्विसेज चालू हैं।
निष्कर्ष
इन सभी स्टेप्स से, आपने ServBay के साथ macOS लोकल एनवायरनमेंट में सक्सेसफुली PHPixie प्रोजेक्ट बनाना, सेटअप करना और चलाना सीख लिया। आपने Composer द्वारा प्रोजेक्ट निर्माण, ServBay के Websites फीचर से वेब सर्वर कॉन्फ़िग करना, और आधारभूत डेटाबेस व कैश इंटीग्रेशन करना और उनका परीक्षण करना सीखा।
ServBay का इंटीग्रेटेड एनवायरनमेंट PHP डेवेलपमेंट सेटअप को बहुत आसान बना देता है, जिससे आप कोडिंग पर ज़्यादा फोकस कर सकते हैं। आशा है, यह गाइड आपके अगले PHPixie वेब प्रोजेक्ट को शुरू करने में सहायक सिद्ध होगी!