macOS पर ServBay का उपयोग करके PHPixie परियोजना बनाना और चलाना
PHPixie एक हल्का, उच्च-प्रदर्शन PHP फ्रेमवर्क है, जिसे वेब एप्लिकेशन के त्वरित विकास के लिए डिज़ाइन किया गया है। यह HMVC (Hierarchical Model-View-Controller) डिज़ाइन पैटर्न का पालन करता है, और साफ-सुथरी कोड संरचना एवं तेज़ प्रोसेसिंग क्षमता प्रदान करता है। PHPixie अपने सरलता, लचीलापन और प्रदर्शन के लिए कई डेवलपर्स द्वारा पसंद किया जाता है।
PHPixie की मुख्य विशेषताएँ और लाभ
- हल्का: PHPixie का मुख्य सिस्टम बेहद सरल है, केवल आवश्यक कॉम्पोनेंट्स शामिल हैं, जिससे यह तेज़ी से प्रारंभ और चलता है।
- उच्च प्रदर्शन: फ्रेमवर्क की डिज़ाइन दक्षता को ध्यान में रखती है, जो उच्च अनुरोधों को कुशलतापूर्वक संभाल सकता है, यह प्रदर्शन-केंद्रित एप्लिकेशनों के लिए उपयुक्त है।
- सीखने में आसान: यह साफ और स्पष्ट API एवं विस्तृत दस्तावेज़ प्रदान करता है, जिससे डेवलपर्स आसानी से इसकी कार्यप्रणाली समझ सकते हैं।
- लचीलापन: इसका ढांचा शिथिल रूप से एकीकृत है, जिससे डेवलपर्स प्रोजेक्ट आवश्यकताओं के अनुसार थर्ड-पार्टी लाइब्रेरी या मॉड्यूल एकीकृत कर सकते हैं।
- सक्रिय समुदाय समर्थन: इसमें एक मजबूत डेवलपर समुदाय है, जो थर्ड-पार्टी एक्सटेंशन और सहायता संसाधन उपलब्ध कराता है।
PHPixie डेवलपर्स को छोटे प्रोजेक्ट्स से लेकर बड़े एंटरप्राइज़ एप्लिकेशन तक विविध वेब एप्लिकेशन को तेज़ी से और उत्कृष्ट गुणवत्ता के साथ बनाने में मदद करता है।
ServBay का उपयोग करके PHPixie परियोजना बनाना और चलाना
यह लेख बताता है कि कैसे ServBay के स्थानीय वेब विकास वातावरण का उपयोग करके एक PHPixie प्रोजेक्ट बनाएं और चलाएं। इसमें हम ServBay में उपलब्ध PHP वातावरण, Composer निर्भरता प्रबंधन और “वेबसाइट” फ़ीचर की मदद से वेब सर्वर की सेटअप करेंगे, साथ ही आसान स्टेप्स के द्वारा प्रोजेक्ट की लोकल एक्सेस और डाटाबेस/कैश इंटीग्रेशन करेंगे।
आवश्यक पूर्व-शर्तें
- 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 के वेबसाइट फ़ीचर द्वारा Caddy वेब सर्वर सेटअप करें ताकि वह आपके PHPixie प्रोजेक्ट को सही तरीके से रन कर सके।
ServBay एप्लिकेशन इंटरफ़ेस खोलें।
वेबसाइट (Websites) सूची में जाएँ।
एक नई वेबसाइट जोड़ें।
वेबसाइट कॉन्फ़िगरेशन भरें:
- नाम: जैसे
My First PHPixie Dev Site
(यह ServBay की आंतरिक पहचान है)। - डोमेन: जैसे
servbay-phpixie-test.local
(ब्राउज़र में जिस डोमेन से एक्सेस करेंगे)। - वेबसाइट प्रकार:
PHP
चुनें। - PHP संस्करण: जैसे
8.3
। - वेबसाइट रूट (Document Root): अपने प्रोजेक्ट के
web
डायरेक्ट्री को चुनें:/Applications/ServBay/www/servbay-phpixie-app/web
।
क्यों
/web
डायरेक्ट्री?PHPixie प्रोजेक्ट का एंट्री फाइल
web/index.php
है। सुरक्षा और सर्वोत्तम प्रैक्टिस के लिए वेब सर्वर का रूट उसी डायरेक्ट्री को पॉइंट करे जिसमें यह फाइल है, बजाय पूरे प्रोजेक्ट लॉबी के। इससे संवेदनशील फाइलें (जैसे configuration, vendor आदि) सीधे वेब से एक्सेस नहीं होंगी।- नाम: जैसे
सेटिंग सेव करें। ServBay Caddy को अपने आप कॉन्फ़िगर कर देगा और आवश्यकतानुसार आपके स्थानीय hosts फाइल को अपडेट कर देगा, जिससे
servbay-phpixie-test.local
आपके लोकल ServBay सर्वर पर पॉइंट करेगा।
पूरा सेटअप स्टेप्स के लिए देखें पहली वेबसाइट जोड़ना।
उदाहरण कोड जोड़ना
परियोजना के सुचारू संचालन और डाटाबेस/कैश इंटीग्रेशन डेमो के लिए कुछ उदाहरण कोड जोड़ें।
उदाहरण नियंत्रक बनाएँ:
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; } // डिफ़ॉल्ट होम पेज एक्शन public function action_index(Request $request) { // assets/templates/app/home.php टेम्पलेट रेंडर करें return $this->template->render('app:home'); } // Memcached उदाहरण एक्शन public function action_memcached(Request $request) { $cache = $this->components->cache(); $cache->set('key', 'ServBay से Memcached को नमस्ते!', 60); // डेटा सेव करें, मान्य अवधि 60 सेकंड $value = $cache->get('key'); // डेटा प्राप्त करें return $this->response()->string($value); // स्ट्रिंग प्रतिक्रिया लौटाएं } // Redis उदाहरण एक्शन public function action_redis(Request $request) { $redis = $this->components->redis(); $redis->set('key', 'ServBay से Redis को नमस्ते!'); // डेटा सेव करें $value = $redis->get('key'); // डेटा प्राप्त करें return $this->response()->string($value); // स्ट्रिंग प्रतिक्रिया लौटाएं } // MySQL/PostgreSQL उपयोगकर्ता जोड़ने का उदाहरण 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('उपयोगकर्ता सफलतापूर्वक जोड़ा गया।'); // सफलता संदेश लौटाएं } // MySQL/PostgreSQL उपयोगकर्ताओं की सूची प्राप्त करने का उदाहरण 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>यह पेज आपके PHPixie एप्लिकेशन द्वारा ServBay का उपयोग करते हुए डायनैमिक रूप से जेनरेट किया जा रहा है।</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 चल रहा है या नहीं।
- चुनी गई साइट की 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' => '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' => '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
डाटाबेस टेबल बनाना (Migration के द्वारा)
PHPixie डाटाबेस संरचना के संस्करण नियंत्रण हेतु कमांड लाइन migration टूल उपलब्ध कराता है।
- टर्मिनल खोलें: अपने PHPixie परियोजना रूट में जाएं:bash
cd /Applications/ServBay/www/servbay-phpixie-app
1 - Migration फाइल बनाएँ: PHPixie CLI टूल से नया migration बनाएं, जैसे
users
टेबल के लिए:bashयहphp pixie generate:migration create_users_table
1assets/migrations
में समय-स्टैम्प युक्त नई PHP फाइल बनाएगा। - Migration फाइल संपादित करें:
assets/migrations
में बनी फाइल (जैसेYYYY_MM_DD_HHMMSS_create_users_table.php
) खोलें,up()
औरdown()
मेंusers
टेबल संरचना निर्धारित करें: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'); // ऑटो-इनक्रिमेंट प्रमुख $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 - Migration चलाएँ: प्रोजेक्ट रूट में टर्मिनल से नीचे कमांड चलाएं:bashसफल होने पर टर्मिनल में success मैसेज दिखेगा। डाटाबेस टूल से देखें कि
php pixie migrate
1servbay_phpixie_app
मेंusers
टेबल बन गई है।
रिलेशनल डाटाबेस (MySQL/PostgreSQL) का इस्तेमाल
ऊपर बताए कंट्रोलर (src/App/HTTP/Controller/Home.php
) में, हमने action_add_user
और action_list_users
फ़ंक्शन जोड़े हैं:
- उपयोगकर्ता जोड़ें:
https://servbay-phpixie-test.local/home/add_user
पर जाएँ, एक उपयोगकर्ता रेकॉर्ड जोड़ेगा। - उपयोगकर्ता सूची देखें:
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
के उदाहरण दिखाए गए हैं। आप इन्हें ऐसे देख सकते हैं:
- Memcached परीक्षण करें:
https://servbay-phpixie-test.local/home/memcached
पर जाएँ, एक key-value बनाकर पढ़कर दिखाएगा। - Redis परीक्षण करें:
https://servbay-phpixie-test.local/home/redis
पर जाएँ, एक key-value बनाकर पढ़कर दिखाएगा।
यकीन कर लें कि ServBay में Memcached और Redis सेवाएँ चालू हैं।
सारांश
इन सभी चरणों के साथ, आपने सफलतापूर्वक macOS लोकल वातावरण में ServBay के उपयोग से PHPixie प्रोजेक्ट का निर्माण, कॉन्फ़िगरेशन और संचालन किया है। आपको Composer के माध्यम से प्रोजेक्ट बनाना, ServBay के वेबसाइट फ़ीचर से वेब सर्वर कॉन्फ़िगर करना, रिलेशनल एवं NoSQL डाटाबेस/कैश इंटीग्रेशन करना, और इनके परीक्षण की प्रक्रिया पता चली।
ServBay का समेकित वातावरण PHP डेवलपमेंट सेटअप को बेहद आसान बनाता है, जिससे आप केवल कोडिंग पर ध्यान केंद्रित कर सकते हैं। आशा है ये गाइड आपके अगले PHPixie वेब प्रोजेक्ट की शानदार शुरुआत में मदद करेगा!