1. 程式人生 > 其它 >php orm的C擴充套件 ycdatabase

php orm的C擴充套件 ycdatabase

背景:昨天看了ice框架後,感覺執行效率非常高,與其差不多的就是yaf了,然後因為yaf沒有orm有點遺憾,不過我就這樣去找了找orm,產生了這樣的感想

今天又看了一下yaf框架,確實和ice差不多,大家都到極致了,幾乎不相上下吧,然後確實沒有ORM,那我想到了可以自己新增ORM,查來查去都是那些composer的大庫(Eloquent之類的東西),那當然很全面很好用,可是這裡我們討論的本來就是執行效率啊.突發奇想,ORM難道不能被編譯為C擴充套件嗎?搜尋了一下,嘿,果然還真有,看看這裡.

https://github.com/caohao-php/ycdatabase

然後下載下來,就是一頓操作,解壓進入然後 phpize7.4, ./configure 一頓操作,之後編譯成功,具體命令如下:

$ phpize7.4 
$ ./configure --with-php-config=/usr/bin/php-config7.4 
$ make
$ make test
$ sudo make install
$ sudo vi /etc/php/7.4/cli/php.ini
$ sudo vi /etc/php/7.4/apache2/php.ini

在php.ini裡面加啟用這個擴充套件的宣告

extension=ycdatabase

然後跑了一下demo的測試程式碼,效率看著還可以 連結到一個簡單的查詢,1毫秒左右

<?php
$start_time = microtime(true);

$db_conf = array( "host" => "127.0.0.1", "username" => "root", "password" => "xxx", "dbname" => "test", "port" => '3306', "option" => array( PDO::ATTR_CASE => PDO::CASE_NATURAL, PDO::ATTR_TIMEOUT => 2 ) ); $ycdb = new ycdb($db_conf); try{ $ycdb->initialize(); }
catch (PDOException $e) { echo "find PDOException when initialize\n"; var_dump($e); exit; } $list = $ycdb->select("user", "id", ["id" => 5900]); $end_time = microtime(true); echo ($end_time - $start_time) * 1000;

從連結到查詢消耗1毫秒的話那其實感覺不錯,沒有給整體的程式執行時間拖後腿,就選你了!