9 tips สำหรับการพัฒนา PHP Programming Skills ให้ก้าวหน้าไปอีกนิด

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 เหล่านี้ก็ถือว่าสำคัญมากๆครับ

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