前面兩篇介紹了 Zephir ,今後能夠開發本身的擴展了,可畢竟是經過轉換而來,雖然很方便,可對於擴展仍是隻知其一;不知其二,也沒法判斷其好壞,因此仍是要了解下用原生的方法是怎麼開發一個 PHP 擴展的。php
本文以 php-7.2.15 爲例php7
建立擴展骨架測試
# 源碼路徑 cd /usr/local/src/php-7.2.15/ext ./ext_skel --extname=twinkle_log
提示以下spa
提示已建立好基礎文件,若是想使用這個新擴展,須要噼裏啪啦這麼些布驟,先記着就好。3d
修改config.m4指針
cd twinkle_log vi config.m4
這兩塊註釋選一個先打開,具體含義後面文章再說明,咱們選下面的code
建立本身的方法blog
vi twinkle_log.c
聲明該方法ip
注意大小寫敏感內存
編譯安裝
/usr/local/php72/bin/phpize ./configure --with-php-config=/usr/local/php72/bin/php-config make make install
填加擴展
vi /usr/local/php72/lib/php.ini # 填加擴展 extension=twinkle_log
測試一下
擴展安裝成功
<?php // test.php hello_world();
執行腳本
php -f test.php
執行成功。
這樣咱們就建立了一個很是簡單的擴展,雖是很簡單的擴展,可仍是比 Zephir 複雜不少。
固然他啥用也沒有,沒有涉汲到內存管理,沒有使用指針,作了這一些操做,也不知道是啥意思,帶着疑問,咱們慢慢深刻研究。