Site icon บริษัท โค๊ดบี จำกัด

ทำเว็บไซต์ด้วย codeigniter การใช้งาน autoload

php-codeigniter-framework

php-codeigniter-framework

<h2>ทำเว็บไซต์ด้วย codeigniter การใช้งาน autoload<&sol;h2>&NewLine;<p><&sol;br><br &sol;>&NewLine;ทำเว็บไซต์ด้วย codeigniter การใช้งาน autoload<&sol;p>&NewLine;<p>การทำ autoload ใน codeigniter นั้น หมายถึงการเปิดใช้งาน php class ที่ถูกสร้างขึ้นจากตัว framework เองและรวมไปถึง class ที่ถูกสร้างขึ้นใหม่จากนักพัฒนา การทำ autoload เหมาะสำหรับคลาสที่จำเป็นที่จะต้องเรียกใช้งานอยู่บ่อย ๆ ไม่ควรที่จะทำ autoload กับทุกคลาสที่เราสร้างขึ้น <&excl;--more--><&sol;p>&NewLine;<p>สำหรับคลาสที่มีการใช้งานไม่บ่อยนัก ความหมายคือ อาจจะมีการใช้งานในบาง controller เท่านั้น ไม่ควรระบุคลาสนั้นลงใน autoload ควรที่จะทำการโหลดและใช้งานเฉพาะส่วนเท่านั้น<br &sol;>&NewLine;<&sol;br><&sol;p>&NewLine;<h4>การใช้งาน autoload ใน codeigniter<&sol;h4>&NewLine;<p>ไฟล์ autoload&period;php จะถูกเก็บไว้ใน application&sol;config&sol;autoload&period;php เราสามารถทำ autoload ได้กับทุกรูปแบบคลาสในโครงสร้างของ codeigniter คือ<&sol;p>&NewLine;<pre class&equals;"lang&colon;default highlight&colon;0 decode&colon;true " > &NewLine;&vert; 1&period; Packages &NewLine;&vert; 2&period; Libraries &NewLine;&vert; 3&period; Helper files &NewLine;&vert; 4&period; Custom config files &NewLine;&vert; 5&period; Language files &NewLine;&vert; 6&period; Models<&sol;pre>&NewLine;<p><&sol;br><&sol;p>&NewLine;<p><strong>1&period; Packages autoload <&sol;strong><br &sol;>&NewLine;การโหลด Packages จะเป็นการโหลดคลาสที่เป็น Third Party เข้ามาทำงานร่วมกับเฟรมเวิร์ค การทำ autoload package มักจะใช้กับ php libraries ที่ทำงานเฉพาะเจาะจงภายในตัวเอง ไม่มีการ extends คุณสมบัติใด ๆ ของ ci<br &sol;>&NewLine;เก็บไฟล์ php class ไว้ที่<&sol;p>&NewLine;<pre class&equals;"lang&colon;default highlight&colon;0 decode&colon;true " >application&sol;third&lowbar;party&sol;<&sol;pre>&NewLine;<p>ตัวอย่าง autoload package<&sol;p>&NewLine;<pre class&equals;"lang&colon;default highlight&colon;1 decode&colon;true " >&dollar;autoload&lbrack;'packages'&rsqb; &equals; array&lpar;APPPATH&period;'third&lowbar;party&sol;pdf'&rpar;&semi;<&sol;pre>&NewLine;<p><&sol;br><br &sol;>&NewLine;<strong>2&period; Libraries autoload <&sol;strong><br &sol;>&NewLine;การโหลด Libraries จะเป็นการโหลดคลาสที่ extends หรือไม่ extends ci ก็ได้ เป็นคลาสที่มีอยู่แล้วใน ci หรือคลาสที่นักพัฒนาสร้างขึ้นมาใช้งานเอง<br &sol;>&NewLine;เก็บไฟล์ php class ไว้ที่ <&sol;p>&NewLine;<pre class&equals;"lang&colon;default highlight&colon;0 decode&colon;true " >application&sol;libraries&sol;<&sol;pre>&NewLine;<p>ตัวอย่าง autoload Libraries<&sol;p>&NewLine;<pre class&equals;"lang&colon;default highlight&colon;1 decode&colon;true " >&dollar;autoload&lbrack;'libraries'&rsqb; &equals; array&lpar;'database'&comma;'pages'&rpar;&semi;<&sol;pre>&NewLine;<p>จากโค๊ดด้านบน database คือ class libraries ของ codeigniter ส่วน pages คือคลาสที่เราสร้างขึ้นมาเองและถูกเก็บไว้ใน application&sol;libraries&sol;pages<br &sol;>&NewLine;<&sol;br><br &sol;>&NewLine;<strong>3&period; Helper autoload <&sol;strong><br &sol;>&NewLine;การโหลด helper จะเป็นการโหลด helper class ของ ci เองและ helper ที่เราสร้างขึ้นมาหใม่ ตัวคลาสจะถูกเก็บไว้ใน application&sol;helper&sol;<br &sol;>&NewLine;เก็บไฟล์ php class ไว้ที่<&sol;p>&NewLine;<pre class&equals;"lang&colon;default highlight&colon;0 decode&colon;true " > &NewLine;application&sol;helper&sol;<&sol;pre>&NewLine;<p>ตัวอย่าง autoload helper<&sol;p>&NewLine;<pre class&equals;"lang&colon;default highlight&colon;1 decode&colon;true " > &NewLine;&dollar;autoload&lbrack;'helper'&rsqb; &equals; array&lpar;'url'&comma; 'file'&rpar;&semi;<&sol;pre>&NewLine;<p><&sol;br><br &sol;>&NewLine;<strong>4&period; Config autoload <&sol;strong><br &sol;>&NewLine;โดยปกติแล้วค่าเริ่มต้นของ codeigniter framework จะมี config ให้เราเพียง 1 คลาส เก็บไว้ใน application&sol;config&sol;config&period;php ไว้สำหรับตั้งค่าต่าง ๆ ของเว็บไซต์ แต่เราสามารถมีได้มากกว่า 1 config และสามารถกำหนดได้ในส่วน autolod<br &sol;>&NewLine;เก็บไฟล์ php class ไว้ที่<&sol;p>&NewLine;<pre class&equals;"lang&colon;default highlight&colon;0 decode&colon;true " > &NewLine;application&sol;config&sol;<&sol;pre>&NewLine;<p>ตัวอย่าง autoload config<&sol;p>&NewLine;<pre class&equals;"lang&colon;default highlight&colon;1 decode&colon;true " > &NewLine;&dollar;autoload&lbrack;'config'&rsqb; &equals; array&lpar;'config1'&comma; 'config2'&rpar;&semi; &NewLine;<&sol;pre>&NewLine;<p><&sol;br><br &sol;>&NewLine;<strong>5&period; Language autoload <&sol;strong><br &sol;>&NewLine;ในกรณีที่เว็บไซต์เรามีการเก็บข้อมูลเป็นไฟล์ภาษาหรือมีภาษามากกว่า 2 ภาษา เราจำเป็นจะต้องทำ autoload สำหรับภาษานั้น สามารถระบุได้ในส่วน Language ใน codeigniter นั้นจะเก็บไฟล์ภาษาโดยมีกฏคือ ชื่อคลาสจะต้องลงท้ายด้วย &lowbar;lang ยกตัวอย่างเช่น ภาษาไทย &equals; thailand&lowbar;lang&period;php และภาษาอังกฤษ &equals; english&lowbar;lang&period;php แต่ตอนกำหนดใน autoload ให้ตัด &lowbar;lang&period;php ออก<br &sol;>&NewLine;เก็บไฟล์ php class ไว้ที่<&sol;p>&NewLine;<pre class&equals;"lang&colon;default highlight&colon;0 decode&colon;true " > &NewLine;application&sol;language&sol;<&sol;pre>&NewLine;<p>ตัวอย่าง autoload language<&sol;p>&NewLine;<pre class&equals;"lang&colon;default highlight&colon;1 decode&colon;true " > &NewLine;&dollar;autoload&lbrack;'language'&rsqb; &equals; array&lpar;'thailand'&comma; 'english'&rpar;&semi; &NewLine;<&sol;pre>&NewLine;<p><&sol;br><br &sol;>&NewLine;<strong>5&period; Models autoload <&sol;strong><br &sol;>&NewLine;การทำ autoload ให้กับ models เหมาะกับ models ที่ใช้งานบ่อย ๆ เท่านั้น ตัวอย่างเช่น เราอาจจะต้อง query ข้อมูลสินค้าขึ้นมาแสดงบ่อย ๆ ในหลาย ๆ controller แทนที่จะต้องใช้การโหลดใน controller ก็ให้เปลี่ยนเป็นการทำเป็น autoload แทน<br &sol;>&NewLine;เก็บไฟล์ php class ไว้ที่<&sol;p>&NewLine;<pre class&equals;"lang&colon;default highlight&colon;0 decode&colon;true " > &NewLine;application&sol;models&sol;<&sol;pre>&NewLine;<p>ตัวอย่าง autoload language<&sol;p>&NewLine;<pre class&equals;"lang&colon;default highlight&colon;1 decode&colon;true " > &NewLine;&dollar;autoload&lbrack;'models'&rsqb; &equals; array&lpar;'model&lowbar;product'&rpar;&semi; &NewLine;<&sol;pre>&NewLine;<p><&sol;br><&sol;p>&NewLine;

Exit mobile version