Sep.29

Composer เครื่องมือช่วยจัดการ Dependency สำหรับ PHP

logo-composer-transparent

ในการพัฒนา Software ด้วย PHP ย่อมมีการเรียกใช้งาน Library อื่น ซึ่ง Library เหล่านี้อาจมีการเรียกใช้งาน Library อื่นๆ อีก

โดยถ้ามีการปรับปรุง/แก้ไข Software แล้วต้องอัพเดท Library จะมีความยุ่งยากของ Library ที่เกี่ยวข้องกัน ซึ่งต้องอัพเดทเพิ่มเติมตาม Library ใหม่ๆ

แต่หากจัดการอัพเดท Library ด้วย Composer ปัญหาต่างๆ จะหมดไป และสะดวกรวดเร็วยิ่งขึ้น

ลงโปรแกรมบน Windows ด้วย Installer

ดาวน์โหลดโปรแกรม Installer ที่นี่ และรันโปรแกรม Installer

ซึ่งจะลงโปรแกรม Composer เวอร์ชั่นล่าสุดให้ พร้อมตั้งค่าตัวแปร PATH เพื่อให้สามารถเรียกใช้คำสั่ง composer จากทุกโฟลเดอร์ในเครื่องผ่านทาง Cli ได้

Command/Option สำหรับ Cli ของ Composer ที่จำเป็น

Global Option

Description

–verbose (-v)
Increase verbosity of messages.
–help (-h)
Display help information.
–quiet (-q)
Do not output any message.
–no-interaction (-n)
Do not ask any interactive question.
–working-dir (-d)
If specified, use the given directory as working directory.
–profile
Display timing and memory usage information.
–ansi
Force ANSI output.
–no-ansi
Disable ANSI output.
–version (-V)
Display this application version.

Command

Option

Description

composer หรือ composer list
 
แสดงรายการคำสั่งทั้งหมด
init
–name
–description
–author
–homepage
–require
–require-dev
–stability (-s)
install
–prefer-source
–prefer-dist
–dry-run
–dev
–no-dev
–no-scripts
–no-plugins
–no-progress
–optimize-autoloader (-o)
update
–prefer-source
–prefer-dist
–dry-run
–dev
–no-dev
–no-scripts
–no-plugins
–no-progress
–optimize-autoloader (-o)
–lock
create-project
–repository-url
–stability (-s)
–prefer-source
–prefer-dist
–dev
–no-install
–no-plugins
–no-scripts
–no-progress
–keep-vcs
Web Programming

Jun.11

PHP – Check for bot visit

function is_bot () {
    $botlist = array("googlebot", "mediapartners-google", "feedfetcher-google", ... );
    $bottest = strtolower($_SERVER['HTTP_USER_AGENT']);
    foreach($botlist as $bot) {
        if(strpos($bottest,$bot)!==false) {
            $thebot = $bot;
            break;
        }
    }
    return ( $thebot ? $thebot : false );
}

-*-

Web Programming,Web SEO

May.03

Super simple page caching

<?php
    // define the path and name of cached file
    $cachefile = 'cached-files/'.date('M-d-Y').'.php';
    // define how long we want to keep the file in seconds. I set mine to 5 hours.
    $cachetime = 18000;
    // Check if the cached file is still fresh. If it is, serve it up and exit.
    if (file_exists($cachefile) && time() - $cachetime < filemtime($cachefile)) {
    include($cachefile);
        exit;
    }
    // if there is either no file OR the file to too old, render the page and capture the HTML.
    ob_start();
?>
    <html>
        output all your html here.
    </html>
<?php
    // We're done! Save the cached content to a file
    $fp = fopen($cachefile, 'w');
    fwrite($fp, ob_get_contents());
    fclose($fp);
    // finally send browser output
    ob_end_flush();
?>

-*-

Web Programming

May.03

บังคับให้ไฟล์ต้องดาวน์โหลดเท่านั้น ด้วย Php (Force file download)

function downloadFile($file){
    $file_name = $file;
    $mime = 'application/force-download';
    header('Pragma: public');  // required
    header('Expires: 0');  // no cache
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header('Cache-Control: private',false);
    header('Content-Type: '.$mime);
    header('Content-Disposition: attachment; filename="'.basename($file_name).'"');
    header('Content-Transfer-Encoding: binary');
    header('Connection: close');
    readfile($file_name);  // push it out
    exit();
}

-*-

Web Programming