2010年9月29日 星期三

ZF快速建模的工具zend-db-model-generator

羨慕ROR有好用的工具可以掃描資料庫並建出model嗎?
最近發現一個好工具,zend-db-model-generator

在開發時可以先下載這個工具

http://code.google.com/p/zend-db-model-generator/

svn checkout http://zend-db-model-generator.googlecode.com/svn/trunk/ zend-db-model-generator-read-only

然後將config資料夾下的config.php-default 複製一份成為 config.php

並修改裡面資料庫的設定


回到上一層後

執行zend-db-model-generator.php 看有什麼功能好用

--database : database name
--location : specify where to create the files (default is current directory)
--namespace : override config file's default namespace
* --table : table name (parameter can be used more then once)
--all-tables : create classes for all the scripts in the database
* --ignore-table : not to create a class for a specific table
* --ignore-tables-regex : ignore tables by perl regular expression
* --tables-regex : add tables by perl regular expression

先來試用一下

php zend-db-model-generator.php --database musicscript --all-tables

他會將你資料庫中的musicscript所有的資料表都建立model在目前資料夾底下
如果想指定位置只要設定--location參數即可。

也能指定資料表user

php zend-db-model-generator.php --database musicscript --table user

測試下--all-tables好像有錯誤訊息!!但不影響建模

當然如果你不喜歡他所建立的內容,也有模版可以自己修改在templates資料夾下

2010年9月27日 星期一

一個用php操控Mysqlnd的接口mysqlnd_uh

以往我們使用PHP連接MySQL時,大部分都是C接口
而這個是使用純粹PHP寫出的PHP功能

http://pecl.php.net/package/mysqlnd_uh


可以用來使用PHP Mysql Proxy的功能


關於Mysqlnd是PHP5.3以上提供的庫,為資料源提供緩衝
也可節省更多資源的消耗詳情請看

http://www.javaeye.com/news/380

2010年9月22日 星期三

PHP的Include與Autoload性能比較

直譯語言在運行期時可以動態載入欲執行的物件,在速度上都會認為Autorun其實不然

請看autoload 與 include性能比較
http://calos-tw.blogspot.com/2009/08/php-autoload-include.html

文中測試結果
迴圈為1 時 . include_once 比較快
迴圈為1000時. __autoload 快很多

當重覆載入時__autoload比較快,但實際上在開發,要重覆載入一個物件的機會可能比較少,使用時
Autorun倒是可以減少許多手工寫code的部份&^^

2010年9月20日 星期一

取得PHP物件中的屬性及方法

在使用第三方的物件時由於文件缺乏,可以使用

get_class_vars 返回由類的默認屬性組成的數組
get_class_methods 返回由類的方法名組成的數組

method_exists(物件名稱, 屬性) 該物件是否有該方法


來取得該物件的屬性及方法

2010年9月9日 星期四

字串切隔取得副檔名

$aryExtend = explode('.', 'abc.gif');
# /**
# * $filename 是 abc.gif
# * $aryExtend為陣列
# */
$extend = end($aryExtend);

2010年9月7日 星期二

使用ZendFrame Work達到跨站使用Session(同個網域下)

Memo(有空再來測試)

實現多個伺服器使用同一份SESSION
http://hi.baidu.com/renyuan1985/blog/item/081d8ff3f431cf58352accb9.html

為Zend_Session 添加一個Memcache_ SaveHandler
http://hi.baidu.com/billdkj/blog/item/049d04f0b2a896c47831aa1c.html

2010年9月6日 星期一

PHP中讀取YAML

先至http://sourceforge.net/projects/spyc/files/

下載spyc可供使用
基於Ruby帶動了一股使用YAML的風潮,想在PHP中使用可以試試spyc物件。
YAML就結構上比XML更簡潔。


include('spyc.php');

// 讀取YAML文件,生成陣列
$yaml = Spyc::YAMLLoad('spyc.yaml');

// 將陣列轉換成YAML文件
$array['name'] = 'lrenwang';
$array['site'] = 'blog.lrenwang.com';
$yaml = Spyc::YAMLDump($array);

Spyc::YAMLDump只是提供轉換,想修改檔案可以參考一下

file_put_contents('spyc.yaml',$yaml);