การสร้างและรันโปรเจกต์ Phalcon
Phalcon คืออะไร?
Phalcon คือเฟรมเวิร์ก PHP สำหรับเว็บที่เป็นโอเพ่นซอร์สและมีประสิทธิภาพสูง ถูกสร้างในรูปแบบ C extension ซึ่งช่วยให้มีการใช้ทรัพยากรต่ำและความเร็วในการประมวลผลสูงกว่าระบบเฟรมเวิร์ก PHP แบบดั้งเดิมทั่วไปมาก Phalcon รองรับสถาปัตยกรรม MVC (Model-View-Controller) และมีชุดคอมโพเนนต์ฟีเจอร์ครบถ้วนสำหรับนักพัฒนา เช่น ORM (Object Relational Mapping), Template Engine, Routing, Caching, Event Manager ฯลฯ เพื่อช่วยสร้างแอปพลิเคชันเว็บหรือ API ที่ทั้งทรงพลังและเร็วอย่างง่ายดาย
จุดเด่นและข้อดีสำคัญของ Phalcon
- ความเร็วสูงมาก: ด้วยการทำงานแบบ C extension ทำให้ Phalcon ไม่เสียเวลาและความสามารถในการประมวลผลไปกับการแปลและโหลดสคริปต์ PHP เหมือนเฟรมเวิร์กทั่วไป
- ใช้ทรัพยากรน้อยมาก: กินหน่วยความจำน้อย เหมาะกับโปรเจกต์ที่ต้องการการขยายตัวและประสิทธิภาพสูง
- ฟีเจอร์ครบถ้วน: มีคอมโพเนนต์หลักสำหรับพัฒนาเว็บอยู่แล้ว จึงไม่ต้องพึ่งพาไลบรารีเสริมมากนัก
- ใช้งานง่าย: API ชัดเจน สม่ำเสมอ และมีเอกสารครบถ้วน ทำให้มือใหม่สามารถเรียนรู้และเริ่มใช้ได้ไว
- แยกส่วนสูง: คอมโพเนนต์แต่ละชิ้นถูกออกแบบให้ใช้แยกอิสระ สามารถเลือกเปลี่ยนหรือเพิ่มตามความต้องการโปรเจกต์
- ปลอดภัย: มีคอมโพเนนต์สำหรับกรองข้อมูล, ป้องกัน CSRF ฯลฯ
Phalcon เหมาะสำหรับการพัฒนาแอปพลิเคชันเว็บและ API ที่ต้องการทั้งความเร็วและการใช้ทรัพยากรอย่างมีประสิทธิภาพสูงสุด
สร้างและรันโปรเจกต์ Phalcon ด้วย ServBay
ServBay คือสภาพแวดล้อมสำหรับการพัฒนาเว็บแบบ Local บน macOS ที่รวม PHP หลายเวอร์ชัน, ฐานข้อมูลหลากหลายชนิด (MySQL, PostgreSQL, MongoDB, Redis), Web Server (Caddy, Nginx, Apache) และเครื่องมืออื่นๆ มาให้ครบในที่เดียว การใช้ ServBay จะช่วยให้คุณติดตั้งและใช้งาน Phalcon ได้อย่างง่ายดาย
คู่มือนี้จะพาคุณสร้างโปรเจกต์ Phalcon เบื้องต้น ตั้งค่า Web Server เพื่อเข้าใช้งาน และสาธิตการเชื่อมต่อฐานข้อมูลแบบ Relational (MySQL) กับ NoSQL (Redis)
ข้อกำหนดเบื้องต้น
ก่อนเริ่มต้น กรุณาตรวจสอบว่าคุณมีพร้อมดังนี้:
- ติดตั้งและรัน ServBay แล้ว: เช็คว่าได้ติดตั้งและเปิดใช้ ServBay บน macOS เรียบร้อยแล้ว
- เปิดใช้ PHP เวอร์ชันที่ต้องการ: ไปที่ ServBay และเปิดใช้เวอร์ชัน PHP ที่ต้องการใช้งาน
- เปิดใช้ Phalcon module แล้ว: ServBay มี Phalcon module ให้เลือกแต่ต้องเปิดใช้เองตามคู่มือ วิธีเปิดใช้งาน Phalcon module ของ ServBay พร้อมรีสตาร์ท PHP service
- ใช้งาน Composer ได้: ServBay มี Composer ในตัว พร้อมใช้งานที่ terminal
เวอร์ชันต่างๆของ Phalcon และ DevTools
เวอร์ชันของ Phalcon และ DevTools ต้องตรงกับ PHP ที่เลือกใช้ ตารางนี้แสดงความเหมาะสมของแต่ละเวอร์ชัน:
เวอร์ชัน PHP | เวอร์ชันแนะนำของ Phalcon | เวอร์ชันแนะนำของ DevTools | หมายเหตุ |
---|---|---|---|
PHP 5.6, 7.0, 7.1 | Phalcon 3.4.5 | 3.4.x | |
PHP 7.2, 7.3, 7.4 | Phalcon 4.1.2 | ~4.1 หรือ 4.3.x | |
PHP 8.0, 8.1, 8.2 | Phalcon 5.x | 5.0.x (ทางการ) | DevTools อาจมีปัญหา compatibility |
PHP 8.3, 8.4 | Phalcon 5.x | dev-master (ใช้งาน repo ที่แก้ไข) | ควรใช้เวอร์ชันที่ชุมชนแก้ไขเพื่อ compatibility |
หมายเหตุสำคัญ: สำหรับ PHP 8.x ขึ้นไป DevTools ทางการอาจขัดแย้งกับสภาพแวดล้อม ดังนั้นควรใช้เวอร์ชันที่ชุมชนแก้ไขให้โดยใช้ Composer วิธีติดตั้งจะบอกไว้ด้านล่าง
การสร้างโปรเจกต์ Phalcon
คำแนะนำเส้นทางเก็บเว็บไซต์
เพื่อความง่ายในการจัดการ ServBay แนะนำให้นำโปรเจกต์เว็บไซต์ทั้งหมดไปไว้ที่ไดเรกทอรีราก /Applications/ServBay/www
ของเว็บไซต์เริ่มต้น ในตัวอย่างนี้จะใช้ที่นี่
เข้าสู่ไดเรกทอรีเว็บไซต์และสร้างโฟลเดอร์โปรเจกต์
เปิด Terminal ไปที่ไดเรกทอรีเว็บไซต์หลักของ ServBay แล้วสร้างโฟลเดอร์ใหม่สำหรับโปรเจกต์ (เช่น
servbay-phalcon-app
):bashcd /Applications/ServBay/www mkdir servbay-phalcon-app cd servbay-phalcon-app
1
2
3ติดตั้ง Phalcon DevTools
Phalcon DevTools คือชุดเครื่องมือ CLI สำหรับสร้าง code, โครงโปรเจกต์ และจัดการ migration ต่างๆ ให้ใช้ Composer ติดตั้งตามเวอร์ชัน PHP ที่เลือก:
สำหรับ PHP 5.6, 7.0, 7.1 (DevTools
^3.4
):bashcomposer require phalcon/devtools:"^3.4"
1สำหรับ PHP 7.2, 7.3, 7.4 (DevTools
~4.1
):bashcomposer require phalcon/devtools:"~4.1"
1สำหรับ PHP 8.0, 8.1, 8.2, 8.3, 8.4 (DevTools
dev-master
เวอร์ชันแก้ไข): DevTools ทางการอาจไม่รองรับ PHP 8.x เต็มที่ ดังนั้นให้เพิ่ม repo ของเวอร์ชันแก้ไขลงในcomposer.json
ในโฟลเดอร์โปรเจกต์ที่สร้างใหม่ดังนี้:json{ "repositories": [ { "url": "https://github.com/daleffe/phalcon-devtools-5.x-fixed.git", "type": "git" } ], "require": { "phalcon/devtools": "dev-master" }, "minimum-stability": "dev", "prefer-stable": true }
1
2
3
4
5
6
7
8
9
10
11
12
13จากนั้นรัน Composer update เพื่อ install DevTools:
bashcomposer update
1
Composer จะสร้างไดเรกทอรี
vendor
โดย DevTools executable จะอยู่ที่vendor/bin/phalcon
สร้างโครงโปรเจกต์ Phalcon ด้วย DevTools
ใช้คำสั่ง DevTools ที่ติดตั้งเพื่อ generate โครงสร้าง file พื้นฐาน:
bashvendor/bin/phalcon project servbay-phalcon-app
1คำสั่งนี้จะสร้างโฟลเดอร์ลูก
/Applications/ServBay/www/servbay-phalcon-app/servbay-phalcon-app
สำหรับโค้ดโปรเจกต์เข้าสู่โฟลเดอร์โปรเจกต์
ไปที่โฟลเดอร์ใหม่สำหรับโค้ด:
bashcd servbay-phalcon-app
1ตอนนี้คุณจะได้อยู่ใน
/Applications/ServBay/www/servbay-phalcon-app/servbay-phalcon-app
ตั้งค่าสภาพแวดล้อมโปรเจกต์
ปกติการตั้งค่าหลักของโปรเจกต์ Phalcon จะอยู่ในไฟล์ app/config/config.php
(เช่นข้อมูลเชื่อมต่อฐานข้อมูล, paths ฯลฯ)
แก้ไขไฟล์ config
เปิดไฟล์
/Applications/ServBay/www/servbay-phalcon-app/servbay-phalcon-app/app/config/config.php
ด้วย editor ที่ชอบ เติมข้อมูลฐานข้อมูล (username:root
, password:password
ตัวอย่าง, dbname:servbay_phalcon_app
ตัวอย่าง - สร้าง db นี้ด้วย adminer/phpMyAdmin ก็ได้):phpreturn new \Phalcon\Config([ // ... การตั้งค่าอื่นๆ ... 'database' => [ 'adapter' => 'Mysql', 'host' => '127.0.0.1', 'username' => 'root', 'password' => 'password', // <-- เปลี่ยนเป็นรหัสผ่านจริงของคุณ 'dbname' => 'servbay_phalcon_app', // <-- เปลี่ยนเป็นชื่อ database จริงของคุณ ], // ... การตั้งค่าอื่นๆ ... ]);
1
2
3
4
5
6
7
8
9
10
11สำคัญ: ตรวจสอบว่าได้เปิดใช้งาน service ของ MySQL/MariaDB ใน ServBay และสร้าง db/user ตรงกับ config นี้
ตั้งค่า Web Server (ผ่านฟีเจอร์เว็บไซต์ของ ServBay)
เพื่อเปิดเว็บด้วย browser ต้องใช้ฟีเจอร์ เว็บไซต์ ของ ServBay กำหนด virtual host ให้ชี้ไปที่โฟลเดอร์ public
- เปิดแอป ServBay
- เข้าเมนู 'เว็บไซต์': เลือก 'เว็บไซต์'
- เพิ่มเว็บไซต์ใหม่:
- ชื่อ: ใส่ชื่อที่ง่ายต่อการเข้าใจ เช่น
My First Phalcon Dev Site
- โดเมน: ตั้งโดเมน เช่น
servbay-phalcon-test.local
(ServBay จะ resolve ให้อัตโนมัติ) - ประเภทเว็บไซต์: เลือก
PHP
- PHP เวอร์ชัน: เลือกเวอร์ชันที่เปิดใช้ Phalcon module
- รากไดเรกทอรีเว็บไซต์: ชี้ไปที่โฟลเดอร์
public
ของโปรเจกต์ที่สร้าง:/Applications/ServBay/www/servbay-phalcon-app/servbay-phalcon-app/public
- ชื่อ: ใส่ชื่อที่ง่ายต่อการเข้าใจ เช่น
- บันทึก: เซฟการตั้งค่าใหม่ อาจจำเป็นต้อง restart web server
อ่านรายละเอียดวิธีตั้งค่าได้ที่ เพิ่มเว็บไซต์แรก
เพิ่มโค้ดตัวอย่าง
ทดลองเพิ่มโค้ดง่ายๆ เพื่อทดสอบว่าโปรเจกต์รันได้จริง
ตั้งค่า routes
แก้ไขไฟล์
/Applications/ServBay/www/servbay-phalcon-app/servbay-phalcon-app/app/config/routes.php
เพิ่ม route สำหรับ path/
:php<?php use Phalcon\Mvc\Router; $router = new Router(false); // กำหนด route เริ่มต้น: path '/' ไปที่ IndexController->indexAction $router->add( '/', [ 'controller' => 'index', 'action' => 'index', ] ); // ... เพิ่ม route อื่นๆต่อได้ ... $router->handle($_SERVER['REQUEST_URI']); return $router;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19สร้าง controller
แก้ไขหรือสร้างไฟล์
/Applications/ServBay/www/servbay-phalcon-app/servbay-phalcon-app/app/controllers/IndexController.php
แบบนี้:php<?php namespace App\Controllers; use Phalcon\Mvc\Controller; class IndexController extends Controller { // รองรับ path '/' public function indexAction() { // ตอบกลับ string เรียบง่าย return 'Hello ServBay!'; } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
เข้าหน้าเว็บไซต์
เมื่อเซฟไฟล์ทั้งหมดและ ServBay รันอยู่ เปิด browser แล้วเข้าที่ domain ที่ตั้งไว้ใน ServBay:
https://servbay-phalcon-test.local
ถ้าทุกอย่างถูกต้องต้องเห็นข้อความ Hello ServBay!
รวมฐานข้อมูล
Phalcon มี ORM และ Database Layer ที่แข็งแกร่ง ServBay มีฐานข้อมูลหลากหลาย เช่น MySQL, Redis ตัวอย่างนี้จะรวมทั้งสองแบบ
ตัวอย่างฐานข้อมูลแบบ Relation: MySQL
ตัวอย่างการเชื่อมต่อกับ MySQL บน ServBay และทำคำสั่ง insert/query ง่ายๆ
สร้างโครงสร้างฐานข้อมูลด้วย migration
DevTools รองรับ database migration บริหาร version ของ schema:
generate migration file: รันในโฟลเดอร์โปรเจกต์นี้:
bashvendor/bin/phalcon migration generate
1จะได้ไฟล์ migration ในโฟลเดอร์
migrations
ชื่อคล้ายๆYYYYMMDDHHMMSS_MigrationName.php
แก้ไขไฟล์ migration: สร้างโครงสร้าง table
users
:php<?php use Phalcon\Db\Column; use Phalcon\Db\Index; use Phalcon\Migrations\Mvc\Model\Migration; /** * Class UsersMigration_100 */ class UsersMigration_100 extends Migration { /** * สร้าง table ตอน migration */ public function morph() { $this->morphTable('users', [ 'columns' => [ new Column( 'id', [ 'type' => Column::TYPE_INTEGER, 'autoIncrement' => true, 'notNull' => true, 'primary' => true, ] ), new Column( 'name', [ 'type' => Column::TYPE_VARCHAR, 'size' => 255, 'notNull' => true, ] ), new Column( 'email', [ 'type' => Column::TYPE_VARCHAR, 'size' => 255, 'notNull' => true, 'unique' => true, ] ), ], 'indexes' => [ new Index('PRIMARY', ['id'], 'PRIMARY'), new Index('email_UNIQUE', ['email'], 'UNIQUE'), ], 'options' => [ 'TABLE_ENGINE' => 'InnoDB', 'CHARACTER SET' => 'utf8mb4', 'COLLATE' => 'utf8mb4_unicode_ci', ], ]); } /** * rollback migration */ public function down() { // ถ้จะลบ table เวลา rollback // $this->getConnection()->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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66หมายเหตุ: ตั้งชื่อ class ให้ตรงกับชื่อไฟล์ migration
รัน migration: เพื่อสร้าง table ผู้ใช้:
bashvendor/bin/phalcon migration run
1ถ้า error ตรวจสอบ config database และว่า MySQL/MariaDB รันหรือไม่
ตั้งค่าเชื่อมต่อฐานข้อมูล (ตั้งค่าไว้แล้วด้านบน)
เช็ค
app/config/config.php
ว่าตั้งค่าถูกต้อง (host, user, password, dbname)เพิ่ม route ตัวอย่าง
ในไฟล์
app/config/routes.php
เพิ่ม path สำหรับ insert/query:php<?php use Phalcon\Mvc\Router; $router = new Router(false); $router->add('/', [ 'controller' => 'index', 'action' => 'index', ]); // เส้นทางเพิ่มข้อมูลผู้ใช้ $router->add( '/mysql-add', [ 'controller' => 'index', 'action' => 'mysqlAdd', ] ); // เส้นทางแสดงข้อมูลผู้ใช้ $router->add( '/mysql', [ 'controller' => 'index', 'action' => 'mysql', ] ); $router->handle($_SERVER['REQUEST_URI']); return $router;
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โค้ดตัวอย่างใน controller สำหรับ DB
แก้ไขไฟล์
app/controllers/IndexController.php
เพิ่ม action สำหรับ MySQL:php<?php namespace App\Controllers; use Phalcon\Mvc\Controller; use Phalcon\Db\Adapter\Pdo\Mysql; use Phalcon\Db\Enum; class IndexController extends Controller { public function indexAction() { return 'Hello ServBay!'; } // เพิ่มข้อมูลผู้ใช้ตัวอย่าง public function mysqlAddAction() { // สร้าง connection ไปยัง MySQL $connection = new Mysql([ 'host' => '127.0.0.1', 'username' => 'root', 'password' => 'password', 'dbname' => 'servbay_phalcon_app', 'charset' => 'utf8mb4', ]); // เพิ่มข้อมูลผู้ใช้ $success = $connection->insert( 'users', // ชื่อตาราง ['ServBay Demo User', 'demo@servbay.test'], ['name', 'email'] ); // แสดงผล echo $success ? 'User added successfully.' : 'Failed to add user.'; } // ดึงข้อมูลผู้ใช้ทั้งหมด public function mysqlAction() { $connection = new Mysql([ 'host' => '127.0.0.1', 'username' => 'root', 'password' => 'password', 'dbname' => 'servbay_phalcon_app', 'charset' => 'utf8mb4', ]); $users = $connection->fetchAll('SELECT * FROM users', Enum::FETCH_ASSOC); header('Content-Type: application/json'); echo json_encode($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
52
53
54หมายเหตุ: ในงานจริง ควรตั้งค่า connection เป็น service ใน DI แล้ว inject เข้ามา
ทดลองใช้งาน
- เข้าลิงก์
https://servbay-phalcon-test.local/mysql-add
จะเห็น "User added successfully." - เข้า
https://servbay-phalcon-test.local/mysql
จะเห็นข้อมูล JSON ของผู้ใช้ทั้งหมด
- เข้าลิงก์
ตัวอย่าง NoSQL: Redis
เชื่อมต่อ Redis เป็น cache ในโปรเจกต์ Phalcon
ติดตั้ง Redis extension
ServBay มี Redis extension ติดมาอยู่แล้ว แค่เปิดใช้ Redis ใน PHP version ที่ใช้
ตั้งค่าการเชื่อมต่อ Redis
ใน
app/config/config.php
เพิ่มการตั้งค่าดังนี้:phpreturn new \Phalcon\Config([ // ... การตั้งค่าอื่นๆ ... 'cache' => [ 'adapter' => 'Redis', 'host' => '127.0.0.1', 'port' => 6379, 'index' => 0, 'persistent' => false, 'auth' => null, ], // ... การตั้งค่าอื่นๆ ... ]);
1
2
3
4
5
6
7
8
9
10
11
12เพิ่ม route สำหรับ Redis
ใน
app/config/routes.php
เพิ่ม path/redis
:php<?php use Phalcon\Mvc\Router; $router = new Router(false); $router->add('/', [ 'controller' => 'index', 'action' => 'index', ]); $router->add('/mysql-add', [ 'controller' => 'index', 'action' => 'mysqlAdd', ]); $router->add('/mysql', [ 'controller' => 'index', 'action' => 'mysql', ]); // เส้นทางสำหรับทดสอบ Redis cache $router->add( '/redis', [ 'controller' => 'index', 'action' => 'redis', ] ); $router->handle($_SERVER['REQUEST_URI']); return $router;
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ตัวอย่างการใช้ Redis ใน Controller
ใน
app/controllers/IndexController.php
เพิ่ม actionredisAction
:php<?php namespace App\Controllers; use Phalcon\Mvc\Controller; use Phalcon\Db\Adapter\Pdo\Mysql; use Phalcon\Db\Enum; use Phalcon\Cache\Adapter\Redis; use Phalcon\Storage\SerializerFactory; class IndexController extends Controller { public function indexAction() { return 'Hello ServBay!'; } public function mysqlAddAction() { $connection = new Mysql([/* ... */]); $success = $connection->insert(/* ... */); echo $success ? 'User added successfully.' : 'Failed to add user.'; } public function mysqlAction() { $connection = new Mysql([/* ... */]); $users = $connection->fetchAll('SELECT * FROM users', Enum::FETCH_ASSOC); header('Content-Type: application/json'); echo json_encode($users); } // ตัวอย่าง Redis cache public function redisAction() { // สร้าง serializer factory $serializerFactory = new SerializerFactory(); // แชร์ options (ควรตรงกับ config.php) $options = [ 'defaultSerializer' => 'Json', 'lifetime' => 3600, 'host' => '127.0.0.1', 'port' => 6379, 'index' => 0, // 'auth' => 'your_redis_password', ]; $cache = new Redis($serializerFactory, $options); $cacheKey = 'my_servbay_redis_cache_key'; $cachedData = $cache->get($cacheKey); if ($cachedData === null) { echo "ไม่พบข้อมูลใน cache, กำลังดึงจากแหล่งข้อมูล..."; $cachedData = 'ดึงข้อมูลจากแหล่งข้อมูล: Hello Redis from ServBay!'; $cache->set($cacheKey, $cachedData); echo "ข้อมูลถูกเก็บลง cache แล้ว"; } else { echo "พบข้อมูลใน cache: "; } // ตอบกลับข้อมูล return $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
54
55
56
57
58
59
60
61
62
63
64
65หมายเหตุ: ในงานจริงควร register การใช้งาน Redis เป็น service ใน DI
ทดลองใช้งาน
ไปที่
https://servbay-phalcon-test.local/redis
- ครั้งแรกจะเห็น "ไม่พบข้อมูลใน cache, กำลังดึงจากแหล่งข้อมูล... ข้อมูลถูกเก็บลง cache แล้ว" และ "ดึงข้อมูลจากแหล่งข้อมูล: Hello Redis from ServBay!"
- หากเข้าใหม่ในขณะที่ cache ยังไม่หมดอายุ จะเห็น "พบข้อมูลใน cache: " และ "ดึงข้อมูลจากแหล่งข้อมูล: Hello Redis from ServBay!"
คำถามที่พบบ่อย (FAQ)
- Q: เจอ error 404 Not Found เมื่อเข้าเว็บไซต์?
- A: ตรวจสอบว่าได้ตั้ง "รากไดเรกทอรีเว็บไซต์" ใน ServBay ให้ตรงกับโฟลเดอร์
public
ของโปรเจกต์ (/Applications/ServBay/www/servbay-phalcon-app/servbay-phalcon-app/public
) และตรวจสอบว่า web server ที่ใช้รัน (Caddy/Nginx) เปิดอยู่กับ domain local ถูกต้อง
- A: ตรวจสอบว่าได้ตั้ง "รากไดเรกทอรีเว็บไซต์" ใน ServBay ให้ตรงกับโฟลเดอร์
- Q: เจอ error หาข้อมูล Phalcon module ไม่เจอ (เช่น Class 'Phalcon\Mvc\Application' not found)?
- A: น่าจะไม่ได้เปิดใช้ Phalcon extension ใน PHP ที่เลือก ให้กลับไป ServBay เช็ค PHP version ว่าเปิด Phalcon แล้วหรือยัง จากนั้น restart PHP service ตามคู่มือ วิธีเปิดใช้ Phalcon module ของ ServBay
- Q: เชื่อมฐานข้อมูลไม่ได้?
- A: ตรวจสอบค่าการเชื่อมต่อใน
app/config/config.php
(host, user, password, dbname) และเช็คว่าได้เปิด service MySQL/MariaDB ใน ServBay เรียบร้อยแล้ว พร้อมให้ user ที่ตั้งค่ามีสิทธิ์ในการเข้าถึงฐานข้อมูล และฐานข้อมูลถูกสร้างแล้ว
- A: ตรวจสอบค่าการเชื่อมต่อใน
สรุป
ServBay ช่วยให้การสร้างและบำรุงรักษาสภาพแวดล้อมสำหรับ Phalcon บนเครื่องของคุณเป็นเรื่องง่าย ตั้งแต่ขั้นแรกของการสร้าง skeleton โปรเจกต์, การปรับ web server ไปจนถึงการเชื่อมต่อกับฐานข้อมูล MySQL และ Redis ด้วยอินเตอร์เฟสที่ครบถ้วนและพร้อมใช้งาน คุณจึงโฟกัสกับการพัฒนาเว็บด้วย Phalcon ได้เต็มที่ หวังว่าคู่มือนี้จะช่วยให้คุณเริ่มต้นกับ ServBay และ Phalcon ได้อย่างรวดเร็วและมีประสิทธิภาพ!