TIPs เล็กๆน้อยๆสำหรับ มือใหม่ PHP ...และทุกๆคนที่ใส่ใจรายละเอียดเล็กๆน้อยๆเหล่านี้เผื่อจะเป็นทางเลือกที่ดีกว่าเดิมครับ :D
1.รู้จักกับ Cheat Sheet และ Manual Offline
Cheat Sheet พูดง่ายๆก็คือบทสรุปแบบกว้างๆในเรื่องที่เราสนใจ
ทำให้เราสามารถได้มองเห็นภาพรวมทั้งหมดได้ก่อนที่จะทำการศึกษา
เพื่อง่ายต่อการทำความเข้าใจ (สมัยนี้แล้วใครยังไม่รู้จักถือว่าพลาดมากๆครับ)
เช่น laravel cheatsheet - http://cheats.jesse-obrien.ca/
หรือรามไปจนถึง AngularJS Cheat Sheet -
http://www.cheatography.com/proloser/cheat-sheets/angularjs/
และในวิชาอื่นๆของสาย IT ก็มักจะมี Cheat Sheet แบบนี้ให้อ่านเกือบทั้งนั้นนะครับ
ส่วน Manual Offline ให้คิดซะว่าเป็นเครื่องมือช่าง ที่ผมว่าน่าจะมีโหลดๆเก็บไว้บ้าง เช่นเกิดใน กรณีที่ไม่สามารถใช้งานอินเตอร์เน็ตได้ แต่งานด่วนมาก App เหล่านี้ก็ถือว่าสำคัญมากๆครับ
เช่น laravel cheatsheet - http://cheats.jesse-obrien.ca/
หรือรามไปจนถึง AngularJS Cheat Sheet -
http://www.cheatography.com/proloser/cheat-sheets/angularjs/
และในวิชาอื่นๆของสาย IT ก็มักจะมี Cheat Sheet แบบนี้ให้อ่านเกือบทั้งนั้นนะครับ
ส่วน Manual Offline ให้คิดซะว่าเป็นเครื่องมือช่าง ที่ผมว่าน่าจะมีโหลดๆเก็บไว้บ้าง เช่นเกิดใน กรณีที่ไม่สามารถใช้งานอินเตอร์เน็ตได้ แต่งานด่วนมาก App เหล่านี้ก็ถือว่าสำคัญมากๆครับ
App Android สำหรับ PHP Developer ควรมีไว้ติดมือถือ
- php manual offline
- Laravel 4 User Manual
- Laravel 5 User Manual
บลาๆ
2.เข้าใจความแตกต่างระหว่าง Comparison Operators
ขอสรุปไว้ง่ายๆในหน้านี้เลยแล้วกันครับ เชื่อว่าหลายคนยังสับ$a = 20; เอาค่า 20 ไปใส่ในตัวแปร $a
$a == $b; เท่ากันหรือไม่ ถ้าเท่ากันเราก็จะได้ค่า True
$a === $b; เท่ากันหรือไม่ and ประเภทเดียวกันด้วยถึงจะได้ค่า True
ในเทคนิคที่ 3 , 4 ถ้าต้องการให้โค้ดอ่านง่ายสบายตา
ก็ข้ามไปเลยได้ครับ....แต่ใน 2 เทคนิคนี้...จะทำเพื่อให้โค้ดของคุณทำงานได้เร็วขึ้นครับ
3.Shortcut the else
วิธีการเขียนโค้ดที่ดีคือการทำให้โค้ดเรียบง่าย และ มีความยาวสั้นที่สุดเท่าที่ทำได้หนึ่งเทคนิคที่แนะนำคือการตัด else statements ออกซะ
ตัวอย่างของโค้ดปกติ
if( this condition )
{
$x = 5;
}
else
{
$x = 10;
}
หรือ if else อย่างด้านล่างนี้ ก็มักจะได้ใช้ในส่วน View (html) อยู่บ่อยๆ
<?php if(isset($_SESSION['name'])): ?>
<?php echo "hi :" .$_SESSION['name']; ?>
<?php else: ?>
<ul class="not-loggin">
<li><a href="/webboard/login.php" >Login</a></li>
<li><a href="/webboard/register.php" >Register</a></li>
</ul>
<?php endif; ?>
4.Drop those Brackets
ตัวอย่างโค้ดปกติif ($gollum == 'halfling') {
$height --;
}
เขียนให้สั้น
if ($gollum == 'halfling') $height --;
หรือถ้าต้องมี Else
if ($gollum == 'halfling') $height --;
else $height ++;
5.str_replace เร็วกว่า ereg_replace() และ preg_replace()
และควรจะเลือกใช้ str_replace เนื่องจากใน php เวอร์ชั่นต่อๆไปก็จะยกเลิก 2 ตัวหลังไป เหลือไว้เพียงแค่ str_replace
6. ใช้ Ternary Operators
เทอนารี่ โอปเรเตอร์ก็คือ if else แบบย่อส่วนดีดีนี่เองเหมาะสำหรับใช้เปรียบเทียบ หรือตัดสินใจแบบ 2 ทางเลือกเป็นที่สุด
ตัวอย่างการใช้งาน
เมื่อผม Select s_status ออกมาจาก Database
และต้องการตรวจสอบ หาก Status มีค่า 1 คือสถาะนะ ยังขายอยู่
ถ้าไม่ใช่ให้ echo ขายแล้ว
<div class="box3-status">สถานะ
<span class="box3-span-right">'.($s_status == '1' ? 'ขาย' : 'ขายแล้ว').'</span>
</div>
หากผมใช้ If Else ก็จะพอมองเห็นความยุ่งยากของโค้ดขึ้นมาทันที
7.รู้จักกับ Memcache
Memcached หรือระบบแคชบน Memory ที่มีประสิทธิภาพสูงเพื่อให้สามารถเข้าถึงฐานข้อมูล และได้ผลลัพธ์อย่างรวดเร็ว
เหมาะสำหรับใช้กับ แอพพลิเคชั่นที่มีการรับ Query จาก User จำนวนมาก
หากมีข้อมูลอยู่ใน memcache จะเรียกข้อมูลจากมันได้
การทดสอบว่า Web Hosting รองรับ Memcache หรือไม่ ?
<?php /* OO API */
$memcache = new Memcache;$memcache->addServer('memcache_host', 11211);
echo $memcache->getServerStatus('memcache_host', 11211); /* procedural API */
$memcache = memcache_connect('memcache_host', 11211);
echo memcache_get_server_status($memcache, 'memcache_host', 11211);
?>
8. ทางเลือกที่ดีกว่าการใช้ @ คือ =& แทนซะ
เช่น$a = @$b;
เปลี่ยนเป็น
$a =& $b;
จะเป็นการใช้งานตัวแปร b โดยอ้างอิง value จากตัวแปร a
9.ใช้งาน Framework
-Codeigniter-Laravel
-Yii
-Phalcon
bla bla bla
Ref:
http://www.pentest.pw/2015/03/10-advanced-tips-to-improve-your.html
http://www.christianmontoya.com/2007/11/09/php-techniques-i-use-all-the-time