ข้อควรทราบในการเขียนโปรแกรม
ระบบปฏิบัติการ
webman รองรับการทำงานทั้งในระบบ linux และ windows อย่างไรก็ตาม เนื่องจาก workerman ไม่สามารถรองรับการตั้งค่าหลายกระบวนการและโหมด daemon บน windows ได้ จึงแนะนำให้ใช้ระบบ windows สำหรับการพัฒนาและทดสอบในสภาพแวดล้อมการพัฒนาเท่านั้น ในขณะที่สภาพแวดล้อมการทำงานจริงควรใช้งานบนระบบ linux
วิธีการเริ่มต้น
ระบบ linux
php start.php start
คำสั่งนี้ใช้โหมดดีบัก โดยทั่วไปจะใช้ในระหว่างการพัฒนา กระบวนการ monitor จะตรวจจับการอัปเดตไฟล์และทำการ reload โดยอัตโนมัติ ข้อมูลที่พิมพ์จะถูกแสดงในเทอร์มินัล หากปิดเทอร์มินัล webman จะปิดตัวเองโดยอัตโนมัติ
php start.php start -d
คำสั่งนี้ใช้งานในโหมด daemon ซึ่งใช้ในสภาพแวดล้อมการทำงานจริง หลังจากปิดเทอร์มินัล webman จะยังคงทำงานต่อไป ข้อมูลที่พิมพ์จะไม่มีการแสดงในเทอร์มินัล
การอัปเดตโค้ดจำเป็นต้องดำเนินการ php start.php reload
หรือ php start.php restart -d
เพื่อทำการอัปเดต
ระบบ windows
ดำเนินการ windows.bat
หรือใช้คำสั่ง php windows.php
เพื่อเริ่มต้น โดยกด ctrl c เพื่อหยุด
ระบบ windows ไม่รองรับคำสั่ง stop reload status reload connections เป็นต้น
windows ไม่รองรับโหมด daemon
คงอยู่ในหน่วยความจำ
webman เป็นเฟรมเวิร์กที่คงอยู่ในหน่วยความจำ โดยทั่วไปแล้ว ไฟล์ php จะถูกโหลดและอยู่ในหน่วยความจำในรูปแบบ opcode และจะไม่ถูกอ่านจากดิสก์อีก (ยกเว้นไฟล์แม่แบบ)
ดังนั้นเมื่อโค้ดธุรกิจหรือการตั้งค่าถูกเปลี่ยนแปลงในสภาพแวดล้อมการทำงานจริง จำเป็นต้องดำเนินการ php start.php reload
เพื่อให้การเปลี่ยนแปลงมีผล
ในกรณีที่มีการเปลี่ยนแปลงการตั้งค่าที่เกี่ยวข้องกับกระบวนการหรือการติดตั้งแพคเกจ composer ใหม่จำเป็นต้องรีสตาร์ท php start.php restart
เพื่อความสะดวกในการพัฒนา webman มีโปรเซสที่กำหนดเองของ monitor ที่ใช้ในการตรวจสอบการอัปเดตไฟล์ธุรกิจ เมื่อมีการอัปเดตไฟล์ธุรกิจ จะทำการ reload โดยอัตโนมัติ
ฟังก์ชันนี้จะเปิดใช้งานเมื่อ workerman ทำงานในโหมดดีบัก (ไม่เพิ่ม-d
ตอนเริ่มต้น) ผู้ใช้ windows ต้องดำเนินการwindows.bat
หรือphp windows.php
เพื่อเปิดใช้งาน
เกี่ยวกับคำสั่งส่งออก
ในโปรเจกต์ php-fpm แบบดั้งเดิม การใช้ฟังก์ชัน echo
var_dump
เพื่อส่งข้อมูลจะแสดงผลโดยตรงในหน้าเว็บ แต่ในระหว่างกระบวนการพัฒนา webman (เมื่อเริ่มต้นในโหมดดีบัก) การแสดงผลเหล่านี้มักจะแสดงในเทอร์มินัล และจะไม่แสดงในหน้าเว็บ (ยกเว้นการแสดงผลในไฟล์แม่แบบ)
ห้ามดำเนินการคำสั่ง exit
die
การเรียกใช้ die หรือ exit จะทำให้กระบวนการสิ้นสุดลงและรีสตาร์ท ทำให้คำขอในปัจจุบันไม่สามารถตอบสนองได้อย่างถูกต้อง
ห้ามดำเนินการฟังก์ชัน pcntl_fork
pcntl_fork
เป็นการสร้างกระบวนการของผู้ใช้ ซึ่งเป็นสิ่งที่ไม่อนุญาตใน webman
การติดตั้งส่วนประกอบ composer
ส่วนประกอบที่ติดตั้งโดยใช้ composer require xxx/xxx
จำเป็นต้องรีสตาร์ทเพื่อให้มีผล