ServBay लोकल डेवलेपमेंट एन्वायरनमेंट में FuelPHP प्रोजेक्ट बनाएं और चलाएं
FuelPHP क्या है?
FuelPHP एक लचीला और मॉड्यूलर PHP फ्रेमवर्क है, जिसे आधुनिक वेब एप्लिकेशन के निर्माण के लिए डिज़ाइन किया गया है। यह हायरार्किकल मॉडल-व्यू-कंट्रोलर (HMVC - Hierarchical Model-View-Controller) डिज़ाइन पैटर्न को फॉलो करता है और डेवलपर्स को क्विक, एफिशिएंट और हाई-क्वालिटी वेब ऐप्लिकेशन बनाने के लिए ढेरों फीचर्स व टूल्स प्रदान करता है। अपनी जबरदस्त फ्लेक्सिबिलिटी, बेहतरीन परफॉरमेंस और एक्स्टेंडेबिलिटी के कारण FuelPHP कई PHP डेवलपर्स की पहली पसंद है।
FuelPHP की मुख्य विशेषताएँ और लाभ
- HMVC आर्किटेक्चर: यह लेयरड MVC पैटर्न को सपोर्ट करता है, जिससे कोड ऑर्गनाइज, री-यूज और मॉड्यूलर बनाना आसान होता है। खासतौर पर बड़े या जटिल प्रोजेक्ट्स के लिए उपयुक्त।
- उच्च परफारमेंस: FuelPHP परफॉरमेंस-ओरिएंटेड है, और कम रिसोर्सेज़ में तेज़ स्पीड के लिए जाना जाता है। यह हाई-कॉनकरेंसी रिक्वेस्ट्स को अच्छे से संभाल सकता है।
- बढ़ाने में आसान: इसमें शक्तिशाली एक्सटेंशन मैकेनिज़्म है, जिससे डेवलपर्स आसानी से थर्ड-पार्टी लाइब्रेरीज़ या कस्टम फंक्शन जोड़ सकते हैं।
- सुरक्षा: मल्टीपल इनबिल्ट सिक्योरिटी फीचर्स जैसे ऑटो-इनपुट वेलिडेशन, आउटपुट फ़िल्टरिंग (XSS से बचाव), CSRF प्रोटेक्शन, SQL इंजेक्शन से बचाव आदि शामिल हैं।
- मजबूत समुदाय: एक सक्रिय और सहायक कम्युनिटी है, जिससे तुरंत हेल्प और तीसरे पक्ष के रिसोर्सेज़ मिलते हैं।
इन खूबियों के कारण FuelPHP डेवलेपर्स को क्विक, सिक्योर और मेन्टेनेबल वेब ऐप्स बनाने में मदद करता है — फिर चाहे वह छोटा प्रोजेक्ट हो या एंटरप्राइज़ लेवल एप्लिकेशन।
ServBay से FuelPHP डेवलेपमेंट एन्वायरनमेंट तैयार करें
ServBay डेवलेपर्स के लिए डिज़ाइन किया गया एक स्थानीय वेब डेवेलपमेंट एन्वायरनमेंट है, जिसमें PHP, Caddy/Nginx/Apache, MySQL/PostgreSQL/MongoDB, Redis इत्यादि सर्विसेज़ व टूल्स प्रीइंस्टॉल्ड आते हैं। ServBay के ज़रिए आप FuelPHP प्रोजेक्ट के लिए ज़रूरी इंफ्रास्ट्रक्चर काफी आसान तरीके से सेटअप कर सकते हैं — मैन्युअल इंस्टॉलेशन/कॉन्फ़िगरेशन की ज़रूरत नहीं।
यह गाइड बताएगी कि कैसे ServBay के PHP एन्वायरनमेंट, वेब सर्वर (Caddy) और डेटाबेस/कैशिंग सर्विसेज़ का उपयोग कर एक FuelPHP प्रोजेक्ट बनाएं और चलाएं। हम ServBay की वेबसाइट्स सुविधा का इस्तेमाल वेब सर्वर सेटअप हेतु करेंगे, जिससे आप अपने प्रोजेक्ट पर तेज़ी से काम और टेस्टिंग कर सकते हैं।
आवश्यकताएँ (प्रमुख शर्तें)
शुरू करने से पहले, कृपया सुनिश्चित करें:
- आपने macOS पर ServBay सफलतापूर्वक इंस्टॉल और रन कर लिया है।
- ServBay में PHP एन्वायरनमेंट एक्टिवेटेड है (डिफॉल्ट रुप से चालू होता है)।
- जिस डेटाबेस (जैसे MySQL) या कैशिंग सर्विस (जैसे Redis, Memcached) का इस्तेमाल करना है, वे ServBay में स्टार्ट व रनिंग हैं।
- ServBay में Composer प्रीइंस्टॉल है, अलग से इंस्टॉल करने की आवश्यकता नहीं।
FuelPHP प्रोजेक्ट बनाएँ
सुझावित प्रोजेक्ट स्टोरेज पथ
ServBay सुझाव देता है कि आप सभी वेबसाइट प्रोजेक्ट /Applications/ServBay/www
डायरेक्टरी में रखें — इससे प्रोजेक्ट का प्रबंधन आसान रहेगा। इस गाइड में भी यही डायरेक्टरी उपयोग की जाएगी।
वेबसाइट रूट डाइरेक्टरी में जाएँ
टर्मिनल खोलिए, और वेबसाइट्स के रूट फोल्डर में जाएँ:
bashcd /Applications/ServBay/www
1प्रोजेक्ट डाइरेक्टरी बनाएं
अपने FuelPHP प्रोजेक्ट के लिए नया फोल्डर बनाएं और उसमें जाएँ:
bashmkdir servbay-fuelphp-app cd servbay-fuelphp-app
1
2Composer से FuelPHP प्रोजेक्ट बनाएं
प्रोजेक्ट डाइरेक्टरी में, Composer चलाकर FuelPHP फ्रेमवर्क डाउनलोड और इनिशियलाइज़ करें (यहाँ
.
का अर्थ है करंट डाइरेक्टरी):bashcomposer create-project fuel/fuel .
1Composer आपके लिए FuelPHP और उसकी डिपेंडेंसीज़
servbay-fuelphp-app
फोल्डर में डाउनलोड करेगा।
वेब सर्वर सेट करें (ServBay वेबसाइट्स फीचर का उपयोग)
ब्राउज़र से अपने FuelPHP प्रोजेक्ट को एक्सेस करने के लिए, ServBay की वेबसाइट्स सुविधा में एक वर्चुअल होस्ट कॉन्फ़िगर करें।
- ServBay मुख्य इंटरफ़ेस खोलें।
- बाएँ साइडबार में वेबसाइट्स मेनू पर क्लिक करें।
- राइट टॉप कॉर्नर में Add Website बटन पर क्लिक करें।
- ओपन हुई विंडो में ये जानकारी भरें:
- नाम: अपनी वेबसाइट को एक पहचानने योग्य नाम दें, जैसे
My First FuelPHP Dev Site
। - डोमेन: एक स्थानीय डोमेन सेट करें, जैसे
servbay-fuelphp-test.local
(ServBay खुद इसे लोकली रिजॉल्व कर देगा)। - वेबसाइट टाइप:
PHP
चुनें। - PHP वर्शन: जो वर्शन चाहिए (
8.3
आदि) सेलेक्ट करें। - वेबसाइट रूट: FuelPHP का एंट्री फोल्डर
public/index.php
है, अतः रूट/Applications/ServBay/www/servbay-fuelphp-app/public
सेट करें।
- नाम: अपनी वेबसाइट को एक पहचानने योग्य नाम दें, जैसे
- Add बटन पर क्लिक कर सेटिंग सेव करें।
ServBay स्वचालित रूप से Caddy कन्फ़िग बदलकर सेवा री-लोड कर देगा, जिससे नया डोमेन सक्रिय हो जाएगा।
पूरी वेबसाइट जोड़ने की प्रक्रिया के लिए देखें: पहली वेबसाइट जोड़ें.
FuelPHP प्रोजेक्ट सर्विस कनेक्शन सेटअप करें
FuelPHP प्रोजेक्ट्स में आमतौर से डेटाबेस, कैश जैसी सेवाओं की कनेक्शन सेटिंग करनी होती है।
डेटाबेस कॉन्फ़िगरेशन
FuelPHP का डाटाबेस सेटअप fuel/app/config/development/db.php
में है। इस फाइल को खोलकर निजी विवरण भरें। मान लें आप ServBay के डिफॉल्ट MySQL का उपयोग कर रहे हैं:
php
<?php
/**
* विकास डेटाबेस सेटिंग्स। ये ग्लोबल सेटिंग्स के साथ मर्ज होती हैं।
*/
return [
'default' => [
'connection' => [
'dsn' => 'mysql:host=localhost;dbname=fuel_dev', // कृपया सुनिश्चित करें कि fuel_dev डेटाबेस पहले से है
'username' => 'root', // ServBay MySQL डिफॉल्ट यूज़र
'password' => 'root', // ServBay MySQL डिफॉल्ट पासवर्ड (सिर्फ लोकल डेवलपमेंट के लिए!)
],
'identifier' => '`', // MySQL में बैक-टिक आईडेंटिफायर जरूरी है
],
];
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
नोट:
- आपको ServBay के डेटाबेस टूल (जैसे phpMyAdmin या Adminer) से
fuel_dev
नाम का डेटाबेस खुद बनाना होगा। डिफॉल्ट यूज़रroot
, पासवर्ड भीroot
(सिर्फ स्थानीय उपयोग के लिए सलाहित) है। 'identifier' => '
'` MySQL के लिए जरुरी है — इससे टेबल/फील्ड नाम सही तरीके से रेफर होंगे।
कैशिंग सर्विस (Memcached और Redis)
FuelPHP कई cache ड्राइवर सपोर्ट करता है। सेटिंग्स fuel/app/config/cache.php
में करें। Memcached/Redis सर्विसेज़ को चालू रखें।
Memcached सेटअप (fuel/app/config/cache.php
):
अगर डिफॉल्ट कैशिंग के लिए Memcached इस्तेमाल करना है:
php
<?php
return [
'driver' => 'memcached', // कैश ड्राइवर memcached चुनें
'memcached' => [
'cache_id' => 'fuel', // कैश ID
'servers' => [
'default' => [
'host' => '127.0.0.1', // Memcached का डिफॉल्ट एड्रेस
'port' => 11211, // Memcached का डिफॉल्ट पोर्ट
'weight' => 100,
],
],
'compression' => false, // कम्प्रेशन सक्षम करें या नहीं
],
// ... अन्य ड्राइवर सेटअप
];
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
ServBay में कई PHP वर्शन पर Memcached एक्सटेंशन पहले से इंस्टॉल रहता है।
Redis सेटअप (fuel/app/config/redis.php
):
Redis के लिए अलग से कनेक्शन सेटिंग करनी होगी:
php
<?php
return [
'default' => [
'hostname' => '127.0.0.1', // Redis का डिफॉल्ट एड्रेस
'port' => 6379, // Redis का डिफॉल्ट पोर्ट
'database' => 0, // Redis डेटाबेस इंडेक्स
],
// आप कई Redis कनेक्शन दर्ज कर सकते हैं
];
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
ServBay में PHP वर्शन के साथ Redis एक्सटेंशन भी आमतौर पर पहले से होता है।
डेटाबेस एवं कैशिंग सर्विस का उदाहरण
FuelPHP और डेटाबेस/कैशिंग सर्विसेज़ की इंटिग्रेशन के डेमो के लिए हम कुछ कोड एग्ज़ाम्पल्स जोड़ेंगे।
डेटाबेस टेबल तैयार करें (FuelPHP Migrations के माध्यम से)
FuelPHP का Oil टूल डेटाबेस माइग्रेशन को सपोर्ट करता है — जिससे DB स्ट्रक्चर का वर्शन कंट्रोल किया जा सकता है।
माइग्रेशन फाइल बनाएं
प्रोजेक्ट रूट (
servbay-fuelphp-app
) में, Oil सेusers
टेबल के लिए माइग्रेशन बनाएं:bashphp oil generate migration create_users_table
1इससे
fuel/app/migrations
डायरेक्टरी में टाइमस्टैम्प के साथ एक फाइल बनेगी।माइग्रेशन फाइल एडिट करें
जो फाइल बनी है उसमें
up()
मेथड में टेबल स्ट्रक्चर डालें, औरdown()
में रोलबैक ऑपरेशन:php<?php namespace Fuel\Migrations; use Fuel\Core\DBUtil; class Create_users_table { public function up() { // users टेबल बनाएँ DBUtil::create_table('users', [ 'id' => ['type' => 'int', 'constraint' => 11, 'auto_increment' => true], 'name' => ['type' => 'varchar', 'constraint' => 100], 'email' => ['type' => 'varchar', 'constraint' => 100, 'unique' => true], ], ['id'], true, 'InnoDB', 'utf8mb4_unicode_ci'); // प्राइमरी की सेट करें, इंडेक्स ऑन, इंजन/चरसेट सेटअप } public function down() { // users टेबल डिलीट करें (रोलबैक ऑपरेशन) DBUtil::drop_table('users'); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23माइग्रेशन चलाएँ
प्रोजेक्ट रूट (
servbay-fuelphp-app
) में, Oil टूल से माइग्रेशन रन करें:bashphp oil refine migrate
1अगर सबकुछ सही रहा, तो
users
टेबलfuel_dev
डेटाबेस में क्रिएट हो जाएगी।
कंट्रोलर कोड उदाहरण जोड़ें
fuel/app/classes/controller/welcome.php
फाइल में डाटाबेस और कैशिंग सर्विस डेमो के लिए मेथड्स जोड़ें:
php
<?php
use Fuel\Core\Controller;
use Fuel\Core\Response;
use Fuel\Core\Cache;
use Fuel\Core\DB; // DB facade इनपोर्ट करें
use Fuel\Core\Redis; // Redis facade इनपोर्ट करें
class Controller_Welcome extends Controller
{
// डिफॉल्ट होमपेज एक्शन
public function action_index()
{
return Response::forge('Hello ServBay!');
}
// Memcached एक्शन उदाहरण
public function action_memcached()
{
// कैश से वैल्यू ट्राय करें
$value = Cache::get('servbay_memcached_key');
if ($value === false) {
// कैश में नहीं मिला, तो सेट करें
$value = 'Hello Memcached from ServBay!';
Cache::set('servbay_memcached_key', $value, 60); // ६० सेकंड कैश करें
$value .= ' (from cache)';
} else {
$value .= ' (cached)';
}
return Response::forge($value);
}
// Redis एक्शन उदाहरण
public function action_redis()
{
// Redis का डिफॉल्ट इंस्टेंस पाएं
$redis = \Redis_Db::instance(); // FuelPHP 1.x में Redis_Db::instance() उपयोग करें
// Redis में डेटा सेट करें
$redis->set('servbay_redis_key', 'Hello Redis from ServBay!');
// Redis से डेटा पाएं
$value = $redis->get('servbay_redis_key');
return Response::forge($value);
}
// MySQL में लिखने का एक्शन उदाहरण
public function action_mysql_add()
{
try {
// users टेबल में नया रेकॉर्ड डालें
$result = DB::insert('users')->set([
'name' => 'ServBay Demo User ' . time(), // यूनिकनेस के लिए टाइमस्टैम्प यूज़ करें
'email' => 'demo_user_' . time() . '@servbay.test',
])->execute(); // execute() में नया insert ID की array मिलेगी
return Response::forge('User added with ID: ' . $result[0]);
} catch (\Database_Exception $e) {
// डाटाबेस एरर — जैसे डुप्लीकेट ईमेल — पकड़ें
return Response::forge('Error adding user: ' . $e->getMessage(), 500);
}
}
// MySQL से पढ़ने का एक्शन उदाहरण
public function action_mysql()
{
// users टेबल से सब रेकॉर्ड पढ़ें
$users = DB::select('id', 'name', 'email')->from('users')->execute()->as_array();
// यूज़र लिस्ट JSON में लौटाएँ
return Response::forge(json_encode($users, JSON_PRETTY_PRINT));
}
}
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
68
69
70
71
72
73
74
75
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
68
69
70
71
72
73
74
75
नोट:
- यहाँ
DB
औरRedis
facades को इनपोर्ट करना जरूरी है। - Memcached/Redis की keys के लिए
servbay_
prefix यूज़ हुआ है — collision रोकने के लिए। - MySQL insert के समय टाइमस्टैम्प यूज़ किया गया, और बेसिक एरर हैंडलिंग भी जोड़ी गई।
- FuelPHP 1.x में Redis के लिए
\Redis_Db::instance()
इस्तेमाल करें।
रूटिंग सेट करें
अपनी एडेड एक्शन मेथड्स (memcached, redis, mysql_add, mysql) की सीधी यूआरएल एक्सेस के लिए रूटिंग फाइल fuel/app/config/routes.php
में अनिवार्य रूट्स जोड़ें:
php
<?php
return array(
'_root_' => 'welcome/index', // डिफॉल्ट रूट
'_404_' => 'welcome/404', // 404 पेज का रूट
// नए एक्शन के लिए रूट्स
'memcached' => 'welcome/memcached',
'redis' => 'welcome/redis',
'mysql_add' => 'welcome/mysql_add',
'mysql' => 'welcome/mysql',
// ... अन्य रूट्स
);
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
वेबसाइट विज़िट और टेस्ट करें
अब ब्राउज़र में, ServBay में सेट किए अपने डोमेन https://servbay-fuelphp-test.local
से प्रोजेक्ट और इंटीग्रेटेड सर्विसेज़ टेस्ट करें:
- डिफॉल्ट पेज:
https://servbay-fuelphp-test.local
- उम्मीद:
Hello ServBay!
- उम्मीद:
- Memcached टेस्ट:
https://servbay-fuelphp-test.local/memcached
- पहली बार:
Hello Memcached from ServBay! (from cache)
- दुबारा:
Hello Memcached from ServBay! (cached)
- पहली बार:
- Redis टेस्ट:
https://servbay-fuelphp-test.local/redis
- उम्मीद:
Hello Redis from ServBay!
- उम्मीद:
- MySQL में यूज़र जोड़ें:
https://servbay-fuelphp-test.local/mysql_add
- उम्मीद:
User added with ID: [नई ID]
- उम्मीद:
- MySQL में यूज़र लिस्ट पढ़ें:
https://servbay-fuelphp-test.local/mysql
- उम्मीद: JSON array —
users
टेबल का डेटा
- उम्मीद: JSON array —
HTTPS के बारे में: ServBay डिफॉल्ट रूप से लोकल वेबसाइट्स के लिए SSL सर्टिफिकेट बनाता है और ServBay User CA या ServBay Public CA से उस पर भरोसा करता है। अगर ब्राउज़र अलर्ट दे — तो सिस्टम में ServBay की CA सर्टिफिकेट को ट्रस्ट में जरूर जोड़ें।
अन्य महत्वपूर्ण बातें
- ServBay के मुख्य इंटरफ़ेस में सुनिश्चित करें कि PHP वर्शन, Caddy/Nginx/Apache, MySQL/Redis/Memcached जैसी सर्विसेस चल रही हों।
fuel_dev
नाम का डेटाबेस आपने खुद डेटाबेस टूल से बनाया है — माइग्रेशन केवल टेबल बनाता है, डाटाबेस नहीं।- FuelPHP का एंट्री फाइल
public/index.php
है; अतः ServBay की वेबसाइट सेटिंग में रूट कोpublic
फोल्डर पर ही पॉइंट करें।
निष्कर्ष
ServBay की सहायता से आप macOS पर FuelPHP प्रोजेक्ट के लिए पूरा लोकल डेवेलपमेंट एन्वायरनमेंट बेहद सरलता से खड़ा कर सकते हैं। इस गाइड में FuelPHP प्रोजेक्ट बनाना, ServBay की वेबसाइट सुविधा सेट करना, डेटाबेस/कैशिंग सर्विस कनेक्शन, और डेमो कोड की सहायता से पूरी प्रक्रिया विस्तार से समझाई गई। ServBay के इनबिल्ट सर्विस, और सरल कॉन्फ़िगरेशन, आपके डेवलपमेंट को काफी तेज़ बना देंगे।
आशा करते हैं यह गाइड ServBay से आपका FuelPHP डेवेलपमेंट सफर शानदार बना दे!