รับทําเว็บไซต์ รับทําseo
บทความที่น่าสนใจ

บทความ ที่น่าสนใจ

การใช้งาน composer กับ php

    หลายคนอาจคิดว่า composer ใช้งานได้กับ laravel อย่างเดียวแต่ไม่ใช่นะครับ composer ใช้งานกับ php ธรรมดา ได้นะครับ เพราะที่จริงแล้วมันก็ออกแบบมาเป็น ตัวที่จัดการโปรเจคของเราให้ เริ่มต้นอย่างเป็นระเบียบเรียบร้อย ไลบราลี่ ทั้งหมด พร้อมใช้งานอยู่ในที่เดียวกัน มาเริ่มกันเลยครับ 

    1. หลังจากเรา ติดตั้ง composer เรียบร้อยเเล้วนะครับ เริ่มแรก สร้างโฟลเดอร์ที่จะเป็นที่อยู่ของโปรเจคก่อน
    C:xampp_php_5.5htdocs>mkdir composer_php

    2. เราจะเลือกไปยังโฟลเดอร์ที่เราจะสร้างโปรเจคแล้วใช้คำสั่ง composer init จะปรากฏคำสั่งที่ช่วยให้เรา สร้างไฟล์ composer.json

    3.ต่อไปจะมีคำสั่งที่ช่วยในการค้นหา package ที่เราต้องการ ตรงนี้เราจะทำไม่ทำก็ได้นะครับ ในตอนนี้ผมจะหา pacakge ที่เกี่ยวกับ facebook พอค้นไปมันก็จะแสดง รายชื่อ package ที่อยู่บน packagist.org มาให้เราเลือก 

    4.ในตอนนี้ผมเลือก facebook/php-sdk แล้วต่อไป เรา ต้องใส่เวอร์ชันที่ต้องการ ถ้าไม่รู้ก็เลือก dev-master ใส่ไปก่อนครับ ต่อไปมันจะถามเราเรื่อยๆ ว่าจะเอา package อะไรอีก ถ้าพอแล้วก็ no ไปครับ แล้วก็ตกลงไป 

    5. ใช้คำสั่ง composer install --prefer-dist --profile profile ใช้แสดงสถานะการทำงานของ composerot นะครับ เสร็จแล้วครับ เราจะได้ไฟล์ composer.json ที่ข้างในมีข้อมูลที่เราป้อนเข้าไปตะกี้นะครับ ต่อไปเราจะไปทัวร์โครงสร้างของ โฟลเดอร์ vendor กัน
     
    ไฮไลท์อยู่ที่โฟลเดอร์ composer ครับ ไฟล์แรก ClassLoader.php ใช้ในการโหลดคลาสของไลบราลี่ ที่เราลงทะเบียนไว้ในไฟล์

    autoload_classmap.php
    1.$vendorDir = dirname(dirname(__FILE__));
    2.$baseDir = dirname($vendorDir);
    3. 
    4.return array(
    5.'BaseFacebook' => $vendorDir . '/facebook/php-sdk/src/base_facebook.php',
    6.'Facebook' => $vendorDir . '/facebook/php-sdk/src/facebook.php',
    7.'FacebookApiException' => $vendorDir . '/facebook/php-sdk/src/base_facebook.php',
    8.);

    ข้างในไฟล์ก็จะเป็น อาเรย์ที่มีคีย์คือชื่อของคลาส และค่าที่เป็นเส้นทางที่อยู่ของไฟล์ ซึ่งอยู่ในแบบของ absolute path

    autoload_namespace.php
    ไฟล์นี้จะใช้ลงทะเบียน namespace ของคลาสที่เขียนขึ้นตาม มาตรฐาน psr-0 ซึ่งตอนนี้้จะยังไม่มีนะครับ เพราะโครงสร้างของ facebook-sdk ไม่เป็นไปตาม psr-0

    autoload_real.php
    ไฟล์นี้ทำหน้าที่ ค้นหาคลาสและ namespace ในไลบราลี่ ที่เราลงทะเบียนไปใน composer.json แล้วเอามาเขียนลงในไฟล์สองตัวที่กล่าวไปด้านบน

    installed.json
    ใช้เก็บข้อมูลทั่วไปของ ไลบราลี่ที่เราติดตั้งไป

    autoload.php
    ไฟล์สุดท้ายที่ผมจะแนะนำ ไฟล์นี้ใช้แค่ดึงคลาส ComposerAutoloaderInit+hash
    ในไฟล์ autoload_real มาใช้งานซึ่งเราจะใช้ไฟล์นี้ไฟล์เดียวครับ
     
    ตัวอย่างการใช้งานกับ php แบบเพียวๆ

    01.  // จากที่เราต้อง require หรือ include ไฟล์จำนวนมากเหลือแค่ ตัวนี้ตัวเดียว
    02.  require_once __DIR__ . '/vendor/autoload.php';
    03. 
    04.  use Facebook as FB; // เรียกใช้คลาสตามคีย์ของอาเรย์ใน autoload_classmap
    05. 
    06.  Class TestComposer {
    07. 
    08.  function __construct() {
    09.$facebook = new FB(array(
    10.'appId' => '344617158898614',
    11.'secret' => '6dc8ac871858b34798bc2488200e503d',
    12.));
    13. 
    14.// Get User ID     
    15.$user = $facebook->getUser();
    16.}
    17. 
    18.  }