ServBay पर Zend Framework (Laminas) प्रोजेक्ट कैसे बनाएं और चलाएं
परिचय
Zend Framework, जिसे अब Laminas Project के नाम से जाना जाता है, एक शक्तिशाली ओपन-सोर्स PHP फ्रेमवर्क है जो उच्च गुणवत्ता, ऑब्जेक्ट-ओरिएंटेड कंपोनेंट्स मुहैया कराता है। यह मॉड्यूलर डिज़ाइन, लचीलापन और परफॉर्मेंस के चलते वेब एप्लिकेशन और सर्विसेज के निर्माण के लिए बेहद लोकप्रिय है — सिंपल वेबसाइट से लेकर एंटरप्राइज-ग्रेड प्रोजेक्ट तक।
ServBay एक लोकल वेब डेवलपमेंट एनवायरनमेंट है जिसे खासतौर पर macOS व Windows के लिए डिजाइन किया गया है। इसमें PHP, कई तरह के वेब सर्वर (जैसे Caddy, Nginx), डेटाबेस (MySQL, PostgreSQL, MongoDB), कैश सर्विसेज (Redis, Memcached) और अन्य टूल्स बंडल्ड आते हैं। ServBay से ये सभी पैकेज बेहद आसानी से मैनेज और सेटअप किए जा सकते हैं, जिससे डिफरेंट PHP फ्रेमवर्क्स पर प्रोजेक्ट बनाना व चलाना आसान हो जाता है।
यह दस्तावेज़ ServBay वातावरण पर Zend Framework (Laminas) प्रोजेक्ट क्रिएट व रन करने की प्रोसेस गाइड करेगा, साथ ही ServBay के डेटाबेस व कैश सेवाओं के इंटीग्रेशन की डेमो देगा।
पूर्व आवश्यकताएँ
शुरू करने से पहले, यह सुनिश्चित करें:
- ServBay इंस्टॉल किया है: आपने macOS या Windows पर ServBay सफलतापूर्वक इंस्टॉल व रन कर लिया है। यदि नहीं किया है तो ServBay की वेबसाइट पर जाकर इंस्टॉलेशन गाइड देख सकते हैं।
- ServBay पैकेजेस: आवश्यक पैकेज इंस्टॉल और चल रहे हैं:
- कम से कम एक PHP वर्शन (PHP 8.x या अधिक सुझावित, क्योंकि Laminas हेतु चाहिए)
- वेब सर्वर (Caddy या Nginx)
- Composer (ServBay इसे बंडल्ड देता है)
- जिस डेटाबेस या कैश सर्विस को उपयोग करना चाहते हैं (MySQL, PostgreSQL, Memcached, Redis)। ServBay के कंट्रोल पैनल से इन्हें शुरू करना आसान है।
Zend Framework प्रोजेक्ट बनाना
ServBay आपके वेबसाइट प्रोजेक्ट्स को नीचे दिए गए डायरेक्टरी में रखने की सलाह देता है, जिससे साइट्स आसानी से मैनेज और ऑटो-कॉन्फ़िगर हो सकें:
- macOS:
/Applications/ServBay/www - Windows:
C:\ServBay\www
वेबसाइट रूट डायरेक्ट्री में जाएं
टर्मिनल में दें और ServBay के वेबसाइट रूट पर जाएं:
macOS:
bashcd /Applications/ServBay/www1Windows:
cmdcd C:\ServBay\www1Composer से प्रोजेक्ट बनाएं
कंपोज़र ServBay में पहले से होता है। Composer के
create-projectकमांड से नया Laminas skeleton एप्लिकेशन बनाएं (जिसे हमservbay-zend-appनाम की डायरेक्टरी में बनाएंगे):bashcomposer create-project laminas/laminas-skeleton-application servbay-zend-app1इससे Zend Framework (Laminas) की जरूरी फाइलें डाउनलोड और इंस्टॉल हो जाएंगी।
प्रोजेक्ट डायरेक्ट्री में जाएं
नई डायरेक्ट्री में नेविगेट करें:
bashcd servbay-zend-app1
वेब सर्वर कॉन्फ़िगर करना
ब्राउज़र से अपने प्रोजेक्ट तक पहुँचने के लिए, ServBay पर वेबसाइट सेटअप करना ज़रूरी है।
- ServBay कंट्रोल पैनल खोलें: ServBay ऐप शुरू करें।
- वेबसाइट सेटिंग्स में जाएं: ‘Websites’ टैब पर क्लिक करें।
- नई वेबसाइट जोड़ें: बाएँ नीचे
+पर क्लिक करें। - वेबसाइट जानकारी भरें:
- Name: कोई आसान नाम दें जैसे
My Zend Dev Site - Domain: ऐसा डोमेन चुनें जिसे ब्राउज़र से एक्सेस कर सकें, जैसे
servbay-zend-test.local(यह लोकल है, असली डोमेन से कन्फ्लिक्ट नहीं करेगा और ServBay स्वतः DNS सेट करेगा) - Website Type:
PHP - PHP Version: अपनी पसंद का PHP वर्शन चुनें (जैसे
8.3) - Document Root: प्रोजेक्ट डायरेक्ट्री की
publicफोल्डर (ज़्यादा जरूरी, क्योंकि index.php वहीं है), जैसे:/Applications/ServBay/www/servbay-zend-app/public
- Name: कोई आसान नाम दें जैसे
- सेव करें और रीस्टार्ट करें: सेव पर क्लिक करें—चेंजेस अप्लाय होंगी और सर्वर रीलोड होगा।
फ़ुल डेटेल के लिए ServBay की पहली वेबसाइट जोड़ें गाइड देखें।
बेसिक "Hello ServBay!" उदाहरण
अब कोड एडिट करें ताकि मुख्य यूआरएल (/) पर "Hello ServBay!" दिखे।
राउट्स व कंट्रोलर सेटअप करें (module.config.php)
module/Application/config/module.config.phpएडिट करें, सुनिश्चित करें बेसिक राउटिंग व कंट्रोलर कॉन्फ़िगरेशन मौजूद है:php<?php declare(strict_types=1); namespace Application; use Laminas\Router\Http\Literal; use Laminas\Router\Http\Segment; use Laminas\ServiceManager\Factory\InvokableFactory; return [ 'router' => [ 'routes' => [ 'home' => [ 'type' => Literal::class, 'options' => [ 'route' => '/', 'defaults' => [ 'controller' => Controller\IndexController::class, 'action' => 'index', ], ], ], // ... अन्य रूट्स ], ], 'controllers' => [ 'factories' => [ Controller\IndexController::class => InvokableFactory::class, ], ], 'view_manager' => [ 'display_not_found_reason' => true, 'display_exceptions' => true, 'doctype' => 'HTML5', 'not_found_template' => 'error/404', 'exception_template' => 'error/index', 'template_map' => [ 'layout/layout' => __DIR__ . '/../view/layout/layout.phtml', 'application/index/index' => __DIR__ . '/../view/application/index/index.phtml', 'error/404' => __DIR__ . '/../view/error/404.phtml', 'error/index' => __DIR__ . '/../view/error/index.phtml', ], 'template_path_stack' => [ __DIR__ . '/../view', ], ], // ... अन्य सेटिंग्स ];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नोट: ऊपर वाला कोड module.config.php का हिस्सा है, इसे अपनी मौजूदा कॉन्फ़िगरेशन में सही तरीके से मर्ज करें।
कंट्रोलर बनाएं या एडिट करें (IndexController.php)
module/Application/src/Controller/IndexController.phpमें indexAction को ऐसा बनाएं:php<?php declare(strict_types=1); namespace Application\Controller; use Laminas\Mvc\Controller\AbstractActionController; use Laminas\View\Model\ViewModel; class IndexController extends AbstractActionController { /** * Default action to display the welcome page. */ public function indexAction() { // ViewModel रिटर्न करें, 'message' वैरिएबल व्यू को भेजें return new ViewModel([ 'message' => 'Hello ServBay!', ]); } // ... अन्य action मेथड्स }1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24व्यू फाइल बनाएं या एडिट करें (index.phtml)
module/Application/view/application/index/index.phtmlमें:php<h1><?php echo $this->message; ?></h1>1यहाँ
$this->messageव्यू में डेटा ऐक्सेस करने के लिए है।
वेबसाइट एक्सेस करें
वेब ब्राउज़र खोलें व आपने सेट किया हुआ डोमेन खोलें—जैसे https://servbay-zend-test.local।
अगर सब सही है तो पेज पर ‘Hello ServBay!’ दिखना चाहिए—आपका Zend Framework प्रोजेक्ट ServBay पर सफलतापूर्वक चल रहा है।
डेटाबेस व कैश इंटीग्रेशन उदाहरण
ServBay के ज़रिए कई डेटाबेस व कैश सर्विसेज मुहैया हैं। नीचे दिए गए उदाहरण दिखाते हैं Laminas प्रोजेक्ट में Memcached, Redis, MySQL व PostgreSQL कैसे जोड़ी जा सकती हैं।
महत्वपूर्ण: ये डेमो स्वतंत्र हैं—असल प्रोजेक्ट में आप जरूरत के हिसाब से किसी एक डेटाबेस व एक/एकाधिक कैश सर्विस का इस्तेमाल तथा कनेक्शन को DI के जरिये मैनेज करेंगे। इन्हें इस्तेमाल करने के लिए संबंधित पैकेज (जैसे MySQL, PostgreSQL, Memcached, Redis) ServBay में ऑन होना चाहिए।
डेटाबेस इंटरऐक्शन उदाहरण—टेबल बनाना
सबसे पहले Laminas DB कंपोनेंट से डेटाबेस में टेबल बनाना दिखाते हैं। यह कोड टेबल क्रिएट करने के लिए एक स्क्रिप्ट दिखाता है, असल migration टूल के बजाय।
Laminas DB इंस्टॉल करें
Composer से प्रोजेक्ट में इंस्टॉल करें:
bashcomposer require laminas/laminas-db1हस्तचालित डेटाबेस बनाएं
ServBay से डेटाबेस टूल्स (जैसे phpMyAdmin, pgAdmin) से एक
servbay_zend_appनामक डेटाबेस बनाएं। MySQL/MariaDB में डिफॉल्ट यूज़रroot, पासवर्डpasswordहै। PostgreSQL में भी यही।टेबल बनाएं (उदाहरण स्क्रिप्ट)
एक PHP फाइल जैसे
create_users_table.phpबनाएं व उसमें:php<?php // create_users_table.php use Laminas\Db\Adapter\Adapter; use Laminas\Db\Sql\Sql; // मान लें MySQL/MariaDB यूज़ कर रहे हैं $adapter = new Adapter([ 'driver' => 'Pdo_Mysql', // या 'Pdo_Pgsql' 'database' => 'servbay_zend_app', 'username' => 'root', 'password' => 'password', // ServBay डिफॉल्ट पासवर्ड 'hostname' => '127.0.0.1', // 'port' => 3306, // 'port' => 5432, ]); $sql = new Sql($adapter); // Users टेबल बनाने का SQL $create = $sql->createTable('users') ->addColumn(new \Laminas\Db\Sql\Ddl\Column\Integer('id', false, null, ['AUTO_INCREMENT' => true])) ->addColumn(new \Laminas\Db\Sql\Ddl\Column\Varchar('name', 255)) ->addColumn(new \Laminas\Db\Sql\Ddl\Column\Varchar('email', 255, ['UNIQUE' => true])) ->addConstraint(new \Laminas\Db\Sql\Ddl\Constraint\PrimaryKey('id')); echo "Executing SQL:\n"; echo $sql->buildSqlString($create, $adapter->getPlatform()) . "\n"; try { // SQL रन करें $adapter->query( $sql->buildSqlString($create, $adapter->getPlatform()), Adapter::QUERY_MODE_EXECUTE ); echo "Table 'users' created successfully.\n"; } catch (\Exception $e) { echo "Error creating table: " . $e->getMessage() . "\n"; }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नोट: यह डेमो स्क्रिप्ट है। माइग्रेशन के लिए Laminas Migrations टूल यूज करें।
रन करने के लिए:
bashphp create_users_table.php1
MySQL इंटीग्रेशन उदाहरण
Zend Framework कंट्रोलर में MySQL से कनेक्ट होकर डेटा लाने का उदाहरण।
डेटाबेस कनेक्शन कॉन्फ़िगर करें
config/autoload/global.phpमें MySQL सेटिंग्स:php<?php // config/autoload/global.php return [ 'db' => [ 'driver' => 'Pdo_Mysql', 'database' => 'servbay_zend_app', 'username' => 'root', 'password' => 'password', 'hostname' => '127.0.0.1', 'port' => 3306, 'charset' => 'utf8mb4', ], // ... अन्य सेटिंग्स ];1
2
3
4
5
6
7
8
9
10
11
12
13
14कंट्रोलर फ़ैक्टरी कॉन्फ़िगरेशन (module.config.php)
IndexController में DB Adapter injection हेतु फैक्ट्री सेट करें:
php<?php // module/Application/config/module.config.php namespace Application; use Laminas\ServiceManager\Factory\InvokableFactory; use Laminas\Db\Adapter\AdapterInterface; return [ // ... अन्य कॉन्फ़िगरेशन 'controllers' => [ 'factories' => [ Controller\IndexController::class => function($container) { $adapter = $container->get(AdapterInterface::class); return new Controller\IndexController($adapter); }, ], ], 'service_manager' => [ 'aliases' => [ AdapterInterface::class => 'Laminas\Db\Adapter\Adapter', ], 'factories' => [ 'Laminas\Db\Adapter\Adapter' => \Laminas\Db\Adapter\AdapterServiceFactory::class, ], ], // ... अन्य सेटिंग्स ];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अपने module.config.php में अच्छी तरह मर्ज करें, खासकर aliases/factories।
रूट्स जोड़ें (module.config.php)
MySQL डेमो के लिए:
php<?php // module/Application/config/module.config.php namespace Application; use Laminas\Router\Http\Literal; return [ 'router' => [ 'routes' => [ // ... अन्य रूट्स 'mysql-add' => [ 'type' => Literal::class, 'options' => [ 'route' => '/mysql-add', 'defaults' => [ 'controller' => Controller\IndexController::class, 'action' => 'mysqlAdd', ], ], ], 'mysql' => [ 'type' => Literal::class, 'options' => [ 'route' => '/mysql', 'defaults' => [ 'controller' => Controller\IndexController::class, 'action' => 'mysql', ], ], ], ], ], // ... अन्य सेटिंग्स ];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कंट्रोलर मेथड जोड़ें (IndexController.php)
Constructor में Adapter और दो action methods जोड़ें:
php<?php declare(strict_types=1); namespace Application\Controller; use Laminas\Mvc\Controller\AbstractActionController; use Laminas\View\Model\ViewModel; use Laminas\Db\Adapter\AdapterInterface; use Laminas\Db\Sql\Sql; class IndexController extends AbstractActionController { private $adapter; public function __construct(AdapterInterface $adapter) { $this->adapter = $adapter; } /** * Default action to display the welcome page. */ public function indexAction() { return new ViewModel([ 'message' => 'Hello ServBay!', ]); } /** * MySQL से users टेबल में नया यूज़र जोड़ें। */ public function mysqlAddAction() { $sql = new Sql($this->adapter); $insert = $sql->insert('users') ->values([ 'name' => 'ServBay Demo User', 'email' => 'demo-mysql@servbay.test', // उदाहरण ईमेल ]); $statement = $sql->prepareStatementForSqlObject($insert); $result = $statement->execute(); $message = $result->getAffectedRows() > 0 ? 'MySQL User added successfully.' : 'Failed to add MySQL user.'; return new ViewModel([ 'message' => $message, ]); } /** * MySQL के users टेबल से सारे यूज़र्स दिखाएँ। */ public function mysqlAction() { $sql = new Sql($this->adapter); $select = $sql->select('users'); $statement = $sql->prepareStatementForSqlObject($select); $result = $statement->execute(); $users = []; foreach ($result as $row) { $users[] = $row; } return new ViewModel([ 'users' => 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व्यू फाइलें बनाएं
module/Application/view/application/index/mysql-add.phtml:php<h1><?php echo $this->message; ?></h1>1module/Application/view/application/index/mysql.phtml:php<h1>MySQL Users</h1> <pre><?php echo $this->users; ?></pre>1
2MySQL पर डेमो देखें
सर्वबे में MySQL ऑन रखें।
https://servbay-zend-test.local/mysql-addखोलें—नई यूज़र ऐड होगा। फिरhttps://servbay-zend-test.local/mysqlखोलें—यूज़र डेटा JSON में दिखेगा।
PostgreSQL इंटीग्रेशन उदाहरण
Zend Framework कंट्रोलर में PostgreSQL कनेक्शन व डेटा लाना:
डेटाबेस कनेक्शन कॉन्फ़िगर करें
config/autoload/global.phpमें:php<?php // config/autoload/global.php return [ 'db' => [ 'driver' => 'Pdo_Pgsql', 'database' => 'servbay_zend_app', 'username' => 'root', 'password' => 'password', 'hostname' => '127.0.0.1', 'port' => 5432, ], // ... अन्य सेटिंग्स ];1
2
3
4
5
6
7
8
9
10
11
12
13कंट्रोलर फैक्टरी कॉन्फ़िगरेशन (कोई बदलाव आवश्यक नहीं अगर MySQL सेटअप कर चुके हैं)
रूट्स जोड़ें (module.config.php)
PostgreSQL डेमो के लिए:
php<?php // module/Application/config/module.config.php namespace Application; use Laminas\Router\Http\Literal; return [ 'router' => [ 'routes' => [ // ... अन्य रूट्स 'pgsql-add' => [ 'type' => Literal::class, 'options' => [ 'route' => '/pgsql-add', 'defaults' => [ 'controller' => Controller\IndexController::class, 'action' => 'pgsqlAdd', ], ], ], 'pgsql' => [ 'type' => Literal::class, 'options' => [ 'route' => '/pgsql', 'defaults' => [ 'controller' => Controller\IndexController::class, 'action' => 'pgsql', ], ], ], ], ], // ... अन्य सेटिंग्स ];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कंट्रोलर मेथड जोड़ें (IndexController.php)
pgsqlAddAction और pgsqlAction methods:
php<?php declare(strict_types=1); namespace Application\Controller; use Laminas\Mvc\Controller\AbstractActionController; use Laminas\View\Model\ViewModel; use Laminas\Db\Adapter\AdapterInterface; use Laminas\Db\Sql\Sql; class IndexController extends AbstractActionController { private $adapter; public function __construct(AdapterInterface $adapter) { $this->adapter = $adapter; } // ... पुरानी action methods /** * PostgreSQL में users टेबल में नया यूज़र जोड़ें। */ public function pgsqlAddAction() { $sql = new Sql($this->adapter); $insert = $sql->insert('users') ->values([ 'name' => 'ServBay Demo User', 'email' => 'demo-pgsql@servbay.test', ]); $statement = $sql->prepareStatementForSqlObject($insert); $result = $statement->execute(); $message = $result->getAffectedRows() > 0 ? 'PostgreSQL User added successfully.' : 'Failed to add PostgreSQL user.'; return new ViewModel([ 'message' => $message, ]); } /** * PostgreSQL के users टेबल से सारे यूज़र्स दिखाएँ। */ public function pgsqlAction() { $sql = new Sql($this->adapter); $select = $sql->select('users'); $statement = $sql->prepareStatementForSqlObject($select); $result = $statement->execute(); $users = []; foreach ($result as $row) { $users[] = $row; } return new ViewModel([ 'users' => 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व्यू फाइलें बनाएं
module/Application/view/application/index/pgsql-add.phtml:php<h1><?php echo $this->message; ?></h1>1module/Application/view/application/index/pgsql.phtml:php<h1>PostgreSQL Users</h1> <pre><?php echo $this->users; ?></pre>1
2PostgreSQL पर डेमो देखें
PostgreSQL ऑन करें।
https://servbay-zend-test.local/pgsql-addपर जाएं—यूज़र ऐड होगा। फिरhttps://servbay-zend-test.local/pgsqlपर देखें — JSON में यूज़र डेटा।
Memcached इंटीग्रेशन उदाहरण
Zend Framework कंट्रोलर में Memcached यूज़ करें, जैसे:
Memcached ऐडapter इंस्टॉल करें
Composer.json में लाइन जोड़ें:
json// composer.json { "require": { "laminas/laminas-skeleton-application": "^1.0", "laminas/laminas-cache-storage-adapter-memcached": "^2.0" } }1
2
3
4
5
6
7फिर:
bashcomposer update1रूट्स जोड़ें (module.config.php)
Memcached के लिए:
php<?php // module/Application/config/module.config.php namespace Application; use Laminas\Router\Http\Literal; return [ 'router' => [ 'routes' => [ // ... अन्य रूट्स 'memcached' => [ 'type' => Literal::class, 'options' => [ 'route' => '/memcached', 'defaults' => [ 'controller' => Controller\IndexController::class, 'action' => 'memcached', ], ], ], ], ], // ... अन्य सेटिंग्स ];1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24कंट्रोलर मेथड जोड़ें (IndexController.php)
memcachedAction:
php<?php declare(strict_types=1); namespace Application\Controller; use Laminas\Mvc\Controller\AbstractActionController; use Laminas\View\Model\ViewModel; use Laminas\Cache\StorageFactory; use Laminas\Cache\Storage\StorageInterface; class IndexController extends AbstractActionController { // ... अन्य मेथड्स /** * Memcached उपयोग उदाहरण। */ public function memcachedAction() { $cache = StorageFactory::factory([ 'adapter' => [ 'name' => 'memcached', 'options' => [ 'servers' => [ ['127.0.0.1', 11211], ], 'ttl' => 300, ], ], 'plugins' => [ 'serializer', 'exception_handler' => ['throw_exceptions' => false], ], ]); $cacheKey = 'my_memcached_data'; $cachedData = $cache->getItem($cacheKey, $success); if (!$success) { $cachedData = 'Hello Memcached! (Data from source, cached at ' . date('Y-m-d H:i:s') . ')'; $cache->setItem($cacheKey, $cachedData); $cachedData .= ' - CACHE MISS'; } else { $cachedData .= ' - CACHE HIT'; } return new ViewModel([ 'message' => $cachedData, ]); } }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व्यू फाइल बनाएं
module/Application/view/application/index/memcached.phtml:php<h1>Memcached Example</h1> <p><?php echo $this->message; ?></p>1
2Memcached डेमो देखें
Memcached ऑन करें।
https://servbay-zend-test.local/memcachedखोलें। पहली बार ‘CACHE MISS’, फिर ‘CACHE HIT’ मिलेगा और टाइमस्टैंप नहीं बदलेगा।
Redis इंटीग्रेशन उदाहरण
Zend Framework में Redis के लिए:
Redis ऐडapter इंस्टॉल करें
Composer.json:
json// composer.json { "require": { "laminas/laminas-skeleton-application": "^1.0", "laminas/laminas-cache-storage-adapter-redis": "^2.0", "ext-redis": "*" } }1
2
3
4
5
6
7
8फिर:
bashcomposer update1रूट्स जोड़ें (module.config.php)
Redis के लिए:
php<?php // module/Application/config/module.config.php namespace Application; use Laminas\Router\Http\Literal; return [ 'router' => [ 'routes' => [ // ... अन्य रूट्स 'redis' => [ 'type' => Literal::class, 'options' => [ 'route' => '/redis', 'defaults' => [ 'controller' => Controller\IndexController::class, 'action' => 'redis', ], ], ], ], ], // ... अन्य सेटिंग्स ];1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24कंट्रोलर मेथड जोड़ें (IndexController.php)
redisAction:
php<?php declare(strict_types=1); namespace Application\Controller; use Laminas\Mvc\Controller\AbstractActionController; use Laminas\View\Model\ViewModel; use Laminas\Cache\StorageFactory; use Laminas\Cache\Storage\StorageInterface; class IndexController extends AbstractActionController { // ... अन्य मेथड्स /** * Redis उपयोग उदाहरण। */ public function redisAction() { $cache = StorageFactory::factory([ 'adapter' => [ 'name' => 'redis', 'options' => [ 'server' => [ 'host' => '127.0.0.1', 'port' => 6379, ], 'ttl' => 300, ], ], 'plugins' => [ 'serializer', 'exception_handler' => ['throw_exceptions' => false], ], ]); $cacheKey = 'my_redis_data'; $cachedData = $cache->getItem($cacheKey, $success); if (!$success) { $cachedData = 'Hello Redis! (Data from source, cached at ' . date('Y-m-d H:i:s') . ')'; $cache->setItem($cacheKey, $cachedData); $cachedData .= ' - CACHE MISS'; } else { $cachedData .= ' - CACHE HIT'; } return new ViewModel([ 'message' => $cachedData, ]); } }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व्यू फाइल बनाएं
module/Application/view/application/index/redis.phtml:php<h1>Redis Example</h1> <p><?php echo $this->message; ?></p>1
2Redis डेमो देखें
Redis ऑन करें।
https://servbay-zend-test.local/redisखोलें। पहली बार 'CACHE MISS', फिर 'CACHE HIT'।
निष्कर्ष
ऊपर दिए गए स्टेप्स से आपने ServBay लोकल विकास पर्यावरण पर Zend Framework (Laminas) प्रोजेक्ट बनाना, वेबसाइट सेटअप करना, सर्वर को प्रोजेक्ट के पब्लिक डायरेक्टरी पर पॉइंट करना और ServBay से MySQL, PostgreSQL, Memcached, Redis जैसी सेवाओं को आसानी से इंटीग्रेट करने की प्रक्रिया सफलता से सीख ली।
ServBay से लोकल डेवलपमेंट बेहद आसान और तेज हो जाती है। यह आपको प्रोडक्शन एनवायरनमेंट का सटीक सिमुलेशन देता है, जिससे आप कोडिंग और प्रोजेक्ट डेवलपमेंट पर पूरा फोकस कर सकते हैं और प्रोडक्टिविटी बढ़ती है।
