aHuii.com

บล็อกของอาฮุย :)

๐๗๔ | การอัพโปรเจ็คที่เขียนด้วย Laravel ขึ้นโฮสต์แบบไม่มีโฟลเดอร์ public

June 5th, 2013

โดยโครงสร้างไฟล์ของ Laravel แล้วเวลารันใน localhost จะเป็น localhost/laravel-project/public แต่ที่ต้องการที่จะให้เห็นคือ localhost/laravel-project แบบที่ไม่ต้องมี public มาต่อท้ายอีกที

ขั้นแรกจะมี 2 ส่วนที่จะถูกจับแยกออกจากกันคือ folder public ที่เป็นส่วน interface กับส่วนอื่นๆ ที่เหลือ โดยนำ public ไปวางใน document root ของโฮส ส่วนไฟล์อื่นๆ จะไว้ตรงไหนก็ได้ ยกตัวอย่างเช่นเขียนโปรเจ็คชื่อ laravel-project (หรืออยากจะใช้ชื่ออะไรก็ตามใจ) โดยเปลี่ยนชื่อจาก laravel ที่เป็น default ตัว folder ที่อยู่บนเครื่องจะมีโครงสร้างแบบนี้

Laravel-Structure-File

๐๖๓ | วิธีสร้าง construct function ของ Smarty 3 และการตั้งค่า complile_dir, cache_dir

August 10th, 2011

วิธีการสร้าง construct function ของ Smarty 3 และ 2 นั้นไม่เหมือนกัน

Smarty2 เขียนแบบนี้

require_once("Smarty.class.php");
Class Smarty2_Extended exntends Smarty {
   function __construct() {
      $this->Smarty();
      $this->compile_dir = "yourpath/"; //path ใน Smarty ต้องปิดท้ายด้วย "/" เสมอ
      $this->cache_dir = "yourpath/";
   }
}

ส่วน Smarty3 ต้องใช้ parent::__construct();

require_once("Smarty.class.php");
Class Smarty3_Extended extends Smarty {
   function __construct() {
      parent::__construct();
      $this->compile_dir = "yourpath/";
      $this->cache_dir = "yourpath/";
   }
}

๐๔๗ | เพิ่มปุ่ม like และ comment ของ Facebook ใน WordPress

June 3rd, 2010

เปลี่ยนช่อง comment ไปใช้ของ FB โดยลง plugins facebook comment for wordpress หลังจากนั้นตั้งค่าใน settings ให้เรียบร้อย แล้วออกมาแก้ themes เพื่อเอาช่อง comment เก่าออก

ในไฟล์ comments.php ในโฟลเดอร์ theme ที่ใช้ mark ใต้ <div id=”respond”> จนถึงก่อน <?php else : ?> และ <p><textarea name=”comment”.. ถึง </form>

แค่นี้ก็จะไม่มีช่อง comment เก่าแสดงให้เห็น

เพิ่มปุ่ม like ในหน้า single.php (ในโฟลเดอร์ theme ที่ใช้) เอาโค้ด ไปวางตรงที่จะให้แสดงปุ่ม like

Code:
<iframe src=”http://www.facebook.com/plugins/like.php?href=<?php echo urlencode(get_permalink()); ?>&layout=standard&show-faces=true&width=530&height=30&action=like&colorscheme=light” scrolling=”no” frameborder=”0″ allowTransparency=”true” style=”border:none; overflow:hidden; width:530px; height:30px”></iframe>

ต่อไปวิธีเพิ่มปุ่ม like ในหน้า index.php (ในโฟลเดอร์ theme ที่ใช้) เอาโค้ดจากด้านบนวางตรงที่จะให้แสดงปุ่ม เช่น จะให้แสดงใต้ชื่อเนื้อหา แต่อยู่ก่อนเนื้อหาก็วางไว้ก่อน <div class=”entry”>

๐๔๖ | ส่งค่า object ข้ามไฟล์

June 2nd, 2010

ปัญหาการเขียน web App โดยใช้โมเดล MVC เจอปัญหาคือ หลังจากที่เรา select rows ใน Model แล้วเนี่ยจะส่งผ่าน Controller ไปให้ View ได้ยังไง? ยิ่งเขียนแบบ OO ต้องส่ง object ข้ามไฟล์เลยทีเดียว และยิ่งไปกว่านั้น app ผมเอา AJAX มาใช้ซะด้วยสิ

โดยใน app ของผมนี้หลังจาก query ออกมาเสร็จก็จับใส่ object เรียงต่อกันเป็น array แล้วก็ตัน..ไม่รู้ว่าจะเอา object พวกนี้โยนไปยังไง

หลังจากนั่งหาข้อมูล + งมอยู่หลายชั่วโมงก็สามารถแก้ปัญหาได้ ​โดย…

1. เอา array of object มา serialize
2. หลังจากนั้นโยนใส่ตัวแปร session เพื่อให้สามารถเห็นได้ทุกไฟล์
3. ไฟล์ที่ต้องการใช้ข้อมูล สมมติว่าเป็น view สามารถเอาค่าที่เก็บใน session ออกมา unserialize เพื่อให้กลายเป็น object เหมือนเดิมได้
4. หลังจากใช้เสร็จก็ unset session ซะ

สำหรับโค้ดก็จะหน้าตาประมาณนี้
การทำ serialize
$_SESSION[“arrayOfObj”] = serialize($arrayOfObj);

การทำ unserialize
$arrayOfObj = unserialize($_SESSION[“arrayOfObj”]);

๐๐๘ | หัดเขียน PHP แบบ OO (object-oriented)

October 15th, 2008

อยากลองหัดเขียนโปรแกรมแบบ OO มานานแล้ว แต่ยังไม่มีโอกาสเหมาะๆ ซักที ตอนนี้ว่าจะทำตัวฝากรูปในเว็บ จริงๆ ก็ไปหา script แจกฟรีได้เยอะแยะ แล้วก็เอามาโมฯ ใหม่ แต่ถ้าทำแบบนั้นก็เหมือนไม่ได้ฝึกฝีมือเท่าไหร่ เพราะมันไม่ได้ใช้เวลานานขนาดทำเว็บบอร์ดไว้ใช้เอง หรือทำ blog ไว้ใช้เอง ก็เลยเอาโปรเจ็คนี้มาเป็นตัวฝึกฝีมือซะเลย

คิดไว้คร่าวๆ ก็เอาเป็น interface แบบ friendly หน่อย ใช้งานง่ายๆ function ยังไม่ต้องเยอะมาก เดี๋ยวเปิดให้ใช้ซักพักเดี๋ยวก็มี request กันมาเองว่าอยากได้อะไรเพิ่มบ้าง ถ้าไม่มีก็ดีไป ฮ่าๆๆ

ดังนั้นในเนื้องานก็เลยไม่มีอะไรมากนัก หลักๆ คือ อัพรูปขึ้นไปได้ เวลาuser login เข้าระบบ ก็เข้าไปหน้า control panel แสดงรูปที่ตัวเองอัพโหลดขึ้นมาและสามารถลบได้ หรือจะอัพโหลดเพิ่มก็ได้ ส่วนการจัดเก็บก็เก็บแบบแยกแต่ละวัน ทั้งหมดแค่นี้เอง..

เริ่มต้นหัดเขียน class สร้าง object เรียก method (function) ฉลุยไม่มีปัญหา มองไปมองมา เอ..ใน function เราทำไมประกาศตัวแปรซ้ำๆ กันเยอะจัง มันเอามาประกาศข้างนอกก็ได้นี่หว่า และแล้ว..ก็เจอตอจนได้

aHuii.com

บล็อกของอาฮุย :)