Skip to content

Zeroplex 生活隨筆

軟體開發、伺服器和生活瑣事

小 縮小字型大小。 中 重設字型大小。 大 放大字型大小。

分類: 未分類

CodeIgniter 安裝與設定

Posted on 2012 年 11 月 14 日2021 年 3 月 12 日 By 日落 在〈CodeIgniter 安裝與設定〉中尚無留言
CodeIgniter 安裝與設定

CodeIgniter 是個輕巧的 PHP framework,支援 MVC 架構、詳細的文件、還有外掛可以裝。若是第一次使用 PHP framework,CodeIgniter 會是個不錯的選擇。

安裝

到官方網站的下載頁面把壓縮檔抓回來,解壓縮到網站目錄下:

wget http://codeigniter.com/download.php -O codeigniter.zip
unzip codeigniter -d ~/public_html

Done.

解壓縮完成就可以說是安裝完成,不需要特別設定,打開瀏覽器就能看到歡迎畫面。

在 CodeIgniter 目錄下會看到這幾個檔案。其中 system 目錄就是 CodeIgniter 的核心程式碼,整個 framework 的函式庫、資料庫驅動、類別檔都會在這個目錄。application 則是網站程式的所在位置,未來所要撰寫的程式都會放在這個目錄下。index.php 是網站唯一的進入點,依照設定以及傳入的參數不同,而載入不同的程式執行。

$ tree -L 1 .
.
├── application
├── index.php
├── license.txt
├── system
└── user_guide

因為核心程式與使用者自行撰寫的程式分開,之後若 CodeIgniter 有新的版本,更新時只要替換 system 目錄和 index.php 即可。

設定

CodeIgniter 的設定檔位於 application/config/ 目錄下,按照不同類型分成幾個不同的檔案,以下針對一些較常用的設定做介紹。

config.php

整個 framework 的基本設定,包括網站網址、character set、session encrypt key、log 與快取位置等。如果安裝完畢需要做設定,通常先來看這個設定檔。

database.php

需要連接資料庫時,帳號、密碼會在這個檔案設定。依照 dbdriver 的不同,需要填寫的項目也會不同,不是每個項目都必須填寫,例如使用 sqlite 時,username、password 是不需要填寫的。

route.php

CodeIgniter 有 URI routing 功能,會將 index.php 後方參數對應到 controller 及他的 method。這個設定檔能讓你設定預設要使用的 controller、自訂 routing。

autoload.php

CodeIgniter 中除了 Load、Input 等類別是預設自動載入以外,其他類別、函式、模組都是需要用到時才載入,若希望 CodeIgniter 執行時期自動載入類別或是函式,可以在這個設定檔中做設定。

Tags:CodeIgniter, PHP

Use FuelPHP oil Generate Model and Migration

Posted on 2012 年 11 月 14 日2021 年 3 月 12 日 By 日落 在〈Use FuelPHP oil Generate Model and Migration〉中尚無留言

FuelPHP 的 oil 提供快速建立 model 和 migration 的方法,例如要建立一資料表存放使用者帳號:

oil g model users id:int username:varvhar[100] email:varchar[200]

oil 則會幫你產生 table 的 migration:

<?php

namespace FuelMigrations;

class Create_users
{
   public function up()
   {
      DBUtil::create_table('users', array(
         'id' => array('constraint' => 11, 'type' => 'int'),
         'username' => array('constraint' => 100, 'type' => 'varvhar'),
         'email' => array('constraint' => 200, 'type' => 'varchar'),
         'created_at' => array('constraint' => 11, 'type' => 'int'),
         'updated_at' => array('constraint' => 11, 'type' => 'int'),

      ), array('id'));
   }

   public function down()
   {
      DBUtil::drop_table('users');
   }
}

其中 id 自動被當作 primary key,沒有設定 auto_increment。

若要建立一個資料表,需要有欄位「id」當作 primary key 且設定 auto_increment 屬性,可以將「id」從 oil 參數中去掉,當 oil 偵測到資料表沒有欄位名稱包含 id 且沒辦法設定 primary key 時,便會自動新增一個「id」的欄位:

   public function up()
   {
      DBUtil::create_table('users', array(
         'id' => array('constraint' => 11, 'type' => 'int', 'auto_increment' => true),
         'username' => array('constraint' => 100, 'type' => 'varchar'),
         'email' => array('constraint' => 200, 'type' => 'varchar'),
         'created_at' => array('constraint' => 11, 'type' => 'int'),
         'updated_at' => array('constraint' => 11, 'type' => 'int'),

      ), array('id'));
   }

oil 的參數中很清楚標示欄位的設定為 fieldname:type,沒辦法加入其他欄位屬性。假設要為欄位加上其他屬性,像是 null、index 等,則必須在 oil 產生 migration 以後,手動在 migration 中新增自己需要的屬性。

ps. oil 還會偵測資料表名稱,migration 會將資料表名稱改成複數。

Tags:FuelPHP, PHP

YouTube HD Suite on Chrome

Posted on 2012 年 11 月 5 日2021 年 3 月 12 日 By 日落 在〈YouTube HD Suite on Chrome〉中尚無留言

新版的 Chrome 已經無法安裝未透過 Chrome Web Store 驗證的外掛,但可以透過 Tampermonkey 載入。

先安裝 Tampermonkey:
https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo

安裝好後,便可以透過 Tampermonkey 再載入 YouTube HD Suite。

ps. Tampermonkey 雖然可以載入第三方外掛,但執行不明外掛還是會有安全上的疑慮,請記得先確認外掛安全性。

Tags:分享

Git 學習資源

Posted on 2012 年 10 月 18 日2021 年 3 月 12 日 By 日落 在〈Git 學習資源〉中有 1 則留言

一些覺得不錯的投影片、教學和工具。

寫給大家的 Git 教學 by 小 B

寫給大家的 Git 教學 from littlebtc

Git Tutorial by ihower

Git Tutorial 教學 from Wen-Tien Chang

Github 推出了互動教學 tryGit,可以邊看說明邊操作。
http://try.github.com

Tags:Git

FreeBSD 系統時鐘停擺

Posted on 2012 年 10 月 18 日2021 年 3 月 12 日 By 日落 在〈FreeBSD 系統時鐘停擺〉中有 2 則留言

因為連續幾次 FreeBSD 上的系統時鐘停擺,連續幾次 date 秒數都不會變,機器上不少服務都爛掉,核心重編後問題還是會發生。

後來在 FreeBSD 論壇上一討論串上看到不少人有遇到相同問題,原因是 VMware 上的一個 bug 導致 timecounter HPET 發生錯誤:

PR887134: Timer stops in FreeBSD 8.x and 9.x as virtual hardware HPET main counter register fails to update due to comparison failure between signed and unsigned integer values.

ESX 已經有釋出 patch。我用的是 workstation,似乎是還沒有發佈更新。

暫時換一下 timecounter 看看問題會不會發生。

先看看系統上有哪些 timecounter 可以使用:

~$ dmesg | grep counter
Timecounter "i8254" frequency 1193182 Hz quality 0
Timecounter "HPET" frequency 14318180 Hz quality 900
Timecounter "ACPI-safe" frequency 3579545 Hz quality 850
Timecounters tick every 10.000 msec

sysctl 檢查目前 timecounter:

$ sysctl kern.timecounter.hardware
kern.timecounter.hardware: HPET

換成 ACPI-safe:

$ sysctl kern.timecounter.hardware=ACPI-safe
kern.timecounter.hardware: HPET -> ACPI-safe

開機自動設定,開啟 /etc/sysctl.conf 並加入:

kern.timecounter.hardware=ACPI-safe
Tags:FreeBSD, VM

文章分頁

上一頁 1 ... 121 122 123 ... 318 下一頁

其他

關於我  (About me)

  文章 RSS Feed

  留言 RSS Feed

Apache AWS Bash C/C++ Docker FreeBSD GCP Git Google Java JavaScript Laravel Linux Microsoft MSSQL MySQL Nginx PHP PHPUnit PostgreSQL Python Qt Ubuntu Unix Vim Web Windows WordPress XD 作業系統 分享 好站推薦 專題 攝影 新奇搞笑 新聞 旅遊 生活雜記 程式設計 網路架站 網頁設計 資訊學習 資訊安全 遊戲 音樂


創用 CC 授權條款
本著作係採用創用 CC 姓名標示-相同方式分享 4.0 國際 授權條款授權.