CodeIgniter प्रोजेक्ट बनाना और चलाना
CodeIgniter क्या है?
CodeIgniter एक हल्का और उच्च प्रदर्शन वाला PHP वेब एप्लिकेशन डेवलपमेंट फ्रेमवर्क है। यह Model-View-Controller (MVC) डिज़ाइन पैटर्न को अपनाता है, जिससे डेवलपर्स आसानी से फिचरयुक्त वेब एप्लिकेशन बना सकते हैं। इसकी साफ-सुथरी संरचना, तेज रफ्तार और सीखने में सरलता के कारण CodeIgniter PHP डेवलपर्स की पहली पसंद बन गया है।
CodeIgniter की प्रमुख विशेषताएँ और लाभ
- हल्का कोर: CodeIgniter का कोर सिस्टम बेहद छोटा है, जिसमें केवल आवश्यक कंपोनेंट्स शामिल हैं, जिससे लोडिंग काफी तेज़ है।
- शानदार प्रदर्शन: फ्रेमवर्क की डिज़ाइन कुशलता पर केंद्रित है और यह हाई कॉन्करेंसी को आसानी से संभाल सकता है।
- सीखने में आसान: साफ डाक्यूमेंटेशन और सहज API इसे नए डेवलपर्स के लिए भी उपयुक्त बनाते हैं।
- अत्यधिक लचीलापन: प्रोजेक्ट की आवश्यकतानुसार थर्ड पार्टी लाइब्रेरी को जोड़ने और कस्टमाइज़ करने की सुविधा आसानी से मिल जाती है।
- सक्रिय समुदाय सहयोग: बड़ा और सक्रिय डेवलपर समुदाय भरपूर संसाधन और समर्थन प्रदान करता है।
CodeIgniter छोटे से बड़े प्रोजेक्ट और एंटरप्राइज़ स्तर की ऐप्स के लिए उपयुक्त है तथा डेवलपर्स को तेज़ और गुणवत्तापूर्ण वेब समाधान बनाने में मदद करता है।
ServBay के साथ CodeIgniter डेवलपमेंट वातावरण तैयार करना
ServBay macOS और Windows के लिए एक स्थानीय वेब डेवलपमेंट टूल है, जिसमें PHP, डेटाबेस (MySQL, PostgreSQL, MongoDB), कैश (Redis, Memcached), और वेब सर्वर (Caddy, Nginx, Apache) जैसे कई सॉफ्टवेयर पैकेज शामिल हैं। साथ ही, इसमें मैनेजमेंट के लिए आसानी से इस्तेमाल होने वाला इंटरफेस भी है। ServBay की मदद से आप CodeIgniter के लिए आवश्यक डेवलपमेंट वातावरण बहुत सरलता से बनाने और मैनेज कर सकते हैं।
यह गाइड बताता है कि ServBay के PHP वातावरण और वेबसाइट फीचर का प्रयोग कर CodeIgniter प्रोजेक्ट बनाना, कॉन्फिगर करना और चलाना कैसे करें, साथ ही विभिन्न डेटाबेस व कैश सेवाओं का इंटीग्रेशन कैसे करें।
आवश्यक तैयारी
शुरू करने से पहले, सुनिश्चित करें कि:
- आपने ServBay को macOS या Windows पर सफलतापूर्वक इंस्टॉल और चालू कर लिया है।
- ServBay में वांछित PHP संस्करण (जैसे PHP 8.3) चालू किया हुआ है।
- ServBay में वांछित डेटाबेस और कैश सॉफ़्टवेयर पैकेज (जैसे MySQL, PostgreSQL, Redis, Memcached) चालू किए हुए हैं।
CodeIgniter प्रोजेक्ट बनाना
ServBay आपकी वेबसाइट प्रोजेक्ट्स को निम्न डायरेक्टरी में रखने की सिफारिश करता है, जिससे प्रोजेक्ट्स के प्रबंधन में आसानी होती है:
- macOS:
/Applications/ServBay/www - Windows:
C:\ServBay\www
Composer इंस्टॉल करना
ServBay इंस्टॉलेशन के साथ Composer पहले से शामिल होता है, सामान्यतः आपको इसे अलग से इंस्टॉल करने की आवश्यकता नहीं होती। आप टर्मिनल में सीधे
composerकमांड चला सकते हैं।वेबसाइट रूट डायरेक्टरी में जाएँ
टर्मिनल खोलें और ServBay द्वारा सुझाई गई वेबसाइट डायरेक्टरी में जाएँ:
macOS:
bashcd /Applications/ServBay/www1Windows:
cmdcd C:\ServBay\www1CodeIgniter प्रोजेक्ट बनाएं
Composer की मदद से एक नया CodeIgniter 4 प्रोजेक्ट क्रिएट करें। प्रोजेक्ट डायरेक्टरी का नाम
servbay-codeigniter-appरखें:bashcomposer create-project codeigniter4/appstarter servbay-codeigniter-app1Composer CodeIgniter के बेस एप्लिकेशन और डिपेंडेंसीज को
servbay-codeigniter-appडायरेक्टरी में डाउनलोड कर देगा।प्रोजेक्ट डायरेक्टरी में जाएँ
नई CodeIgniter प्रोजेक्ट डायरेक्टरी में जाएँ:
macOS:
bashcd /Applications/ServBay/www/servbay-codeigniter-app1Windows:
cmdcd C:\ServBay\www\servbay-codeigniter-app1
आरंभिक कॉन्फ़िगरेशन
डेटाबेस कनेक्शन सेटअप
CodeIgniter का डेटाबेस कॉन्फिगरेशन app/Config/Database.php फाइल में होता है। डेटाबेस इस्तेमाल करने से पहले आपको इसमें कनेक्शन जानकारी सेट करनी होगी।
सबसे पहले, अगर आप डेटाबेस का प्रयोग करना चाहते हैं, तो ServBay के डेटाबेस मैनेजमेंट टूल (जैसे Adminer या phpMyAdmin, जो ServBay ऐप इंटरफेस में उपलब्ध है) से servbay_codeigniter_app नाम का एक नया डेटाबेस बना लें।
इसके बाद app/Config/Database.php एडिट करें, $default array खोजें और ServBay में चालू डेटाबेस के मुताबिक (जैसे MySQL या PostgreSQL) कनेक्शन जानकारी भरें। आमतौर पर ServBay का डिफ़ॉल्ट डेटाबेस यूज़र नेम और पासवर्ड root और password होते हैं।
नीचे MySQL सेटअप का उदाहरण है:
php
public $default = [
'DSN' => '',
'hostname' => '127.0.0.1', // ServBay डेटाबेस आमतौर पर 127.0.0.1 पर चलता है
'username' => 'root', // ServBay का डिफ़ॉल्ट यूज़र नेम
'password' => 'password', // ServBay का डिफ़ॉल्ट पासवर्ड
'database' => 'servbay_codeigniter_app', // आपका डेटाबेस
'DBDriver' => 'MySQLi', // डेटाबेस के मुताबिक, MySQL के लिए MySQLi या PDO
'DBPrefix' => '',
'pConnect' => false,
'DBDebug' => (ENVIRONMENT !== 'production'),
'charset' => 'utf8mb4',
'DBCollat' => 'utf8mb4_general_ci',
'swapPre' => '',
'encrypt' => false,
'compress' => false,
'strictOn' => false,
'failover' => [],
'port' => 3306, // MySQL का डिफ़ॉल्ट पोर्ट
];1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
अगर आप PostgreSQL इस्तेमाल कर रहे हैं, तो DBDriver 'Postgre' रखें, port आमतौर पर 5432 रहेगा, और charset से जुड़े सेटिंग्स भी एडजस्ट करने पड़ सकते हैं।
कैश कनेक्शन सेटअप (Memcached/Redis)
Memcached या Redis इस्तेमाल करने के लिए app/Config/Cache.php फाइल में सेटिंग करें।
app/Config/Cache.php को एडिट करें और सही सेक्शन तलाशें। ServBay में Memcached का डिफ़ॉल्ट पोर्ट 11211 और Redis का पोर्ट 6379 है, पासवर्ड आमतौर पर नहीं होता।
Memcached के लिए उदाहरण:
php
public $memcached = [
'host' => '127.0.0.1', // ServBay Memcached आमतौर पर 127.0.0.1 पर चलता है
'port' => 11211, // Memcached का डिफ़ॉल्ट पोर्ट
'weight' => 1,
];1
2
3
4
5
2
3
4
5
Redis के लिए उदाहरण:
php
public string $handler = 'redis'; // डिफ़ॉल्ट कैश हैंडलर को redis सेट करें
public $default = [ // Redis सेटअप
'host' => '127.0.0.1', // ServBay Redis आमतौर पर 127.0.0.1 पर चलता है
'password' => null, // ServBay Redis के लिए आमतौर पर कोई पासवर्ड नहीं
'port' => 6379, // Redis का डिफ़ॉल्ट पोर्ट
'timeout' => 0,
'database' => 0,
];1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
सुनिश्चित करें कि आपके द्वारा चालू कैश सॉफ़्टवेयर पैकेज के अनुरूप कॉन्फिगर किया गया हो।
वेब सर्वर सेटअप (ServBay वेबसाइट सेटिंग)
ServBay के वेबसाइट फीचर का इस्तेमाल करके Web Server को अपने CodeIgniter प्रोजेक्ट की ओर पॉइंट करें।
- ServBay ऐप्लिकेशन ओपन करें।
- वेबसाइट (Websites) टैब पर जाएँ।
- नए वेबसाइट जोड़ने के लिए नीचे बाएँ
+बटन पर क्लिक करें। - वेबसाइट जानकारी भरें:
- Name (नाम): आसान पहचान के लिए नाम डालें जैसे
My First CodeIgniter Dev Site - Domain (डोमेन): वह डोमेन डालें, जिस पर ब्राउज़र में एक्सेस करना है, जैसे
servbay-codeigniter-test.local। ServBay.localडोमेन को खुद ही लोकल पर रूट करता है। - Site Type (वेबसाइट प्रकार):
PHPचुनें। - PHP Version (PHP वर्शन): इस्तेमाल का वर्शन चुनें, जैसे
8.3। - Document Root (वेबसाइट रूट डायरेक्टरी): यह महत्वपूर्ण है। CodeIgniter का entry file (
index.php) प्रोजेक्ट डायरेक्टरी कीpublicफोल्डर में होता है। इसलिए वेबसाइट रूट डायरेक्टरी प्रोजेक्ट कीpublicफोल्डर चयनित करें:/Applications/ServBay/www/servbay-codeigniter-app/public
- Name (नाम): आसान पहचान के लिए नाम डालें जैसे
- Add (जोड़ें) बटन पर क्लिक कर सेटिंग सेव करें।
- ServBay बदलाव लागू करने का मैसेज दे सकता है, पुष्टि करें।
विस्तृत जानकारी के लिए देखें: पहला वेबसाइट जोड़ने की गाइड।
उदाहरण कोड जोड़ना
प्रोजेक्ट के चलने और डेटाबेस/कैश कनेक्शन की टेस्टिंग के लिए CodeIgniter डिफ़ॉल्ट Home कंट्रोलर में कुछ उदाहरण मेथड्स जोड़ते हैं।
app/Controllers/Home.php फाइल एडिट करें और इसे नीचे दिए कोड से बदलें:
php
<?php
namespace App\Controllers;
use CodeIgniter\Controller;
use CodeIgniter\Database\Exceptions\DatabaseException; // डेटाबेस एक्सेप्शन
use CodeIgniter\Cache\Exceptions\CacheException; // कैश एक्सेप्शन
class Home extends Controller
{
/**
* डिफ़ॉल्ट होमपेज मेथड
*/
public function index(): string
{
// स्वागत संदेश भेजें
return '<h1>Hello ServBay and CodeIgniter!</h1><p>Your CodeIgniter project is running on ServBay.</p>';
}
/**
* Memcached उदाहरण मेथड
*/
public function memcached(): string
{
try {
$cache = \Config\Services::cache();
// कैश में डेटा सेव करने की कोशिश
$success = $cache->save('servbay_memcached_key', 'Hello Memcached from CodeIgniter!', 60); // 60 सेकंड तक कैश
if (!$success) {
return 'Error: Failed to save data to Memcached. Check Memcached service and configuration.';
}
// कैश से डेटा पढ़ने की कोशिश
$value = $cache->get('servbay_memcached_key');
if ($value === null) {
return 'Error: Failed to get data from Memcached. Cache might have expired or service is down.';
}
return 'Memcached Test Success: ' . $value;
} catch (CacheException $e) {
// कैश संबंधित एक्सेप्शन कैच करें
return 'Cache Error: ' . $e->getMessage() . '. Ensure Memcached service is running and configured correctly.';
} catch (\Exception $e) {
// अन्य संभावित त्रुटियाँ कैच करें
return 'An unexpected error occurred: ' . $e->getMessage();
}
}
/**
* Redis उदाहरण मेथड
*/
public function redis(): string
{
try {
$cache = \Config\Services::cache();
// कैश में डेटा सेव
$success = $cache->save('servbay_redis_key', 'Hello Redis from CodeIgniter!', 60); // 60 सेकंड तक कैश
if (!$success) {
return 'Error: Failed to save data to Redis. Check Redis service and configuration.';
}
// कैश से डेटा पढ़ें
$value = $cache->get('servbay_redis_key');
if ($value === null) {
return 'Error: Failed to get data from Redis. Cache might have expired or service is down.';
}
return 'Redis Test Success: ' . $value;
} catch (CacheException $e) {
// कैश संबंधित एक्सेप्शन को कैच करें
return 'Cache Error: ' . $e->getMessage() . '. Ensure Redis service is running and configured correctly.';
} catch (\Exception $e) {
// अन्य गोलमाल कैच करें
return 'An unexpected error occurred: ' . $e->getMessage();
}
}
/**
* यूज़र डेटा डेटाबेस में जोड़ना (MySQL/PostgreSQL)
*/
public function addUser(): string
{
try {
$db = \Config\Database::connect();
// 'users' टेबल के अस्तित्व की जाँच करें
if (!$db->tableExists('users')) {
return 'Error: "users" table does not exist. Please run database migrations first.';
}
// डेटा डालें
$data = [
'name' => 'ServBay Demo User',
'email' => 'user_' . time() . '@servbay.demo', // यूनिक ईमेल बनाने के लिए time()
];
$db->table('users')->insert($data);
// सफल इनसर्शन की जांच (ऐच्छिक)
// if ($db->affectedRows() > 0) {
return 'User added successfully: ' . $data['email'];
// } else {
// return 'Error: Failed to add user.';
// }
} catch (DatabaseException $e) {
// डेटाबेस संबंधित एक्सेप्शन
return 'Database Error: ' . $e->getMessage() . '. Check database connection and table structure.';
} catch (\Exception $e) {
// अन्य संभावित त्रुटियाँ
return 'An unexpected error occurred: ' . $e->getMessage();
}
}
/**
* डेटाबेस से यूज़र डेटा पढ़ना (MySQL/PostgreSQL)
*/
public function listUsers(): string
{
try {
$db = \Config\Database::connect();
// 'users' टेबल के अस्तित्व की जाँच करें
if (!$db->tableExists('users')) {
return 'Error: "users" table does not exist. Please run database migrations first.';
}
// सभी यूज़र्स निकालें
$users = $db->table('users')->get()->getResult();
if (empty($users)) {
return 'No users found in the database.';
}
// यूज़र लिस्ट JSON के रूप में लौटाएँ
return json_encode($users);
} catch (DatabaseException $e) {
// डेटाबेस संबंधित एक्सेप्शन
return 'Database Error: ' . $e->getMessage() . '. Check database connection and table structure.';
} catch (\Exception $e) {
// अन्य संभावित त्रुटियाँ
return 'An unexpected error occurred: ' . $e->getMessage();
}
}
}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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
इस अपडेटेड कंट्रोलर में साफ आउटपुट एवं बेसिक एरर हैंडलिंग सँजोई गई है जिससे समस्याओं का पता लगाना आसान हो।
राउट सेटअप
Home कंट्रोलर में जो उदाहरण मेथड्स जोड़े हैं, उन्हें URL से ऐक्सेस करने के लिए CodeIgniter की राउटिंग फाइल में अलग-अलग रूल जोड़ें।
app/Config/Routes.php एडिट करें। $routes वाले भाग में नीचे दिए रूल जोड़ें:
php
// ... अन्य रूट्स ...
// Memcached के लिए रूट
$routes->get('/memcached', 'Home::memcached');
// Redis के लिए रूट
$routes->get('/redis', 'Home::redis');
// डेटाबेस उदाहरण के लिए रूट्स
$routes->get('/add-user', 'Home::addUser');
$routes->get('/list-users', 'Home::listUsers');
// ... अन्य रूट्स ...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
ध्यान दें कि ये नए रूट्स पुराने कंटेंट को ओवरराइट न करें, सिर्फ जोड़ें।
वेबसाइट ऐक्सेस करें
अब आपका CodeIgniter प्रोजेक्ट ServBay पर कॉन्फिग और लाइव है। अपने वेब ब्राउज़र में पहले सेट किए गए डोमेन से ऐक्सेस करें:
होमपेज ऐक्सेस:
https://servbay-codeigniter-test.localआपको पेज परHello ServBay and CodeIgniter!जैसे शब्द दिखेंगे, मतलब प्रोजेक्ट ServBay वेब सर्वर से सही से चल रहा है।Memcached उदाहरण ऐक्सेस:
https://servbay-codeigniter-test.local/memcachedठीक सेटिंग्स होने परMemcached Test Success: Hello Memcached from CodeIgniter!जैसा आउटपुट दिखेगा।Redis उदाहरण ऐक्सेस:
https://servbay-codeigniter-test.local/redisRedis सही सेटअप होने परRedis Test Success: Hello Redis from CodeIgniter!जैसा आउटपुट मिलेगा।
डेटाबेस ऑपरेशन उदाहरण (MySQL/PostgreSQL)
डेटाबेस ऑपरेशन से पहले CodeIgniter की migration कमांड से users टेबल बनानी होगी।
डेटाबेस स्ट्रक्चर बनाना (Migration चलाएँ)
टर्मिनल खोलें, और CodeIgniter प्रोजेक्ट डायरेक्टरी में जाएँ:
bashcd /Applications/ServBay/www/servbay-codeigniter-app1Migration फाइल बनाएं: CodeIgniter की CLI से migration फाइल जनरेट करें ताकि
usersटेबल स्ट्रक्चर डिफाइन हो सके:bashphp spark make:migration create_users_table1इससे
app/Database/Migrationsडायरेक्टरी में एक नई PHP फाइल बन जाएगी।Migration फाइल एडिट करें: नई फाइल (जैसे
YYYY-MM-DD-HHMMSS_CreateUsersTable.php) खोलें, औरup()मेथड में टेबल और कॉलम की डिटेल लिखें। ध्यान दें कि MySQL और PostgreSQL में डिफ़ॉल्ट timestamp field का सिंटैक्स भिन्न है (CURRENT_TIMESTAMPvsNOW()), इसी के लिए CodeIgniter काRawSqlक्लास काम आएगा। उदाहरण:php<?php namespace App\Database\Migrations; use CodeIgniter\Database\Migration; use CodeIgniter\Database\RawSql; // RawSql क्लास ऐड करना न भूलें class CreateUsersTable extends Migration { public function up() { $this->forge->addField([ 'id' => [ 'type' => 'INT', 'constraint' => 5, 'unsigned' => true, 'auto_increment' => true, ], 'name' => [ 'type' => 'VARCHAR', 'constraint' => '100', ], 'email' => [ 'type' => 'VARCHAR', 'constraint' => '100', 'unique' => true, // ईमेल को यूनिक रखें ], 'created_at' => [ 'type' => 'TIMESTAMP', // डेटाबेस के प्रकार के अनुसार डिफ़ॉल्ट वैल्यू सेट करें // MySQL: 'default' => new RawSql('CURRENT_TIMESTAMP'), // PostgreSQL: 'default' => new RawSql('NOW()'), 'default' => new RawSql($this->db->getPlatform() === 'MySQLi' ? 'CURRENT_TIMESTAMP' : 'NOW()'), // अपने आप चुनाव ], 'updated_at' => [ 'type' => 'TIMESTAMP', // MySQL: 'default' => new RawSql('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'), // PostgreSQL: 'default' => new RawSql('NOW()'), 'default' => new RawSql($this->db->getPlatform() === 'MySQLi' ? 'CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP' : 'NOW()'), // अपने आप चुनाव ], ]); $this->forge->addKey('id', true); // id को प्राथमिक कुंजी बनाएं $this->forge->createTable('users'); // users टेबल बनाएं } public function down() { // migration revert पर users टेबल हटाएँ $this->forge->dropTable('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
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ध्यान दें: ऊपर दिए एक्साम्पल में डेटाबेस प्लेटफॉर्म अनुसार टाइमस्टैम्प डिफ़ॉल्ट वैल्यू चुनने की सिंपल लॉजिक है। प्रैक्टिकल प्रोजेक्ट्स में आपको शायद अलग-अलग migration फाइल्स चाहिए हों।
Migration चलाएं: टर्मिनल में नीचे दिया कमांड चलाएँ:
bashphp spark migrate1सफल होने पर टर्मिनल में migration success मैसेज मिलेगा। ServBay के डेटाबेस टूल (जैसे Adminer) से भी "
servbay_codeigniter_app" डेटाबेस में "users" टेबल देख सकते हैं।
डेटाबेस उदाहरण ऐक्सेस करें
पक्का करें कि app/Config/Database.php में डेटाबेस कनेक्शन सही सेट है तथा migration चलाकर users टेबल बनी है।
डाटाबेस में यूज़र जोड़ें: ब्राउज़र में जाएँ -
https://servbay-codeigniter-test.local/add-userहर बार इस URL को खोलने पर एक नया यूज़र रिकॉर्डusersटेबल में डाल जाएगा। आउटपुट मेंUser added successfully: user_XXXXXXXXXX@servbay.demoजैसा दिखेगा।यूज़र्स की सूची निकालें: ब्राउज़र में जाएँ -
https://servbay-codeigniter-test.local/list-usersयह URLusersटेबल से सभी रिकॉर्ड्स को JSON में दिखाएगा, आपको यूज़र डेटा की JSON array मिलेगी।
सारांश
इन स्टेप्स द्वारा आपने macOS (या Windows) के ServBay वातावरण पर CodeIgniter प्रोजेक्ट बनाना, सेटअप और चलाना सीख लिया। आपने जाना Composer से प्रोजेक्ट क्रिएट करना, ServBay की वेबसाइट फीचर से सही डायरेक्टरी सेट करना, CodeIgniter के डेटाबेस व कैश कनेक्शन की कॉन्फ़िगरेशन करना, और उदाहरण कोड के माध्यम से डेटाबेस व कैश का टेस्ट करना। ServBay स्थानीय डेवलपमेंट वातावरण को सेटअप और प्रबंधन बेहद आसान बनाता है, जिससे आप CodeIgniter ऐप्लिकेशन डेवेलपमेंट पर ज्यादा ध्यान दे सकते हैं।
