php開發擴展的三種方式

2020-08-28 夢回故裡歸來

作為世界上最好的語言,php有著非常靈活的語法,它的靈活甚至有時候讓你摸不到頭腦,函數的命名不規範遭到了很多人的批評,然而這些並不能阻止它的發展。

沒有一種語言從設計之初就可以做所有事情,因此我們需要不斷去發展它,擴展它,而php的擴展就是它這些年不斷前行的動力,yar,swoole的出現,讓php又煥發出青春活力。



php的擴展開發主要有三種方式。

PHP-CPP

php-cpp是一套c++類庫,方便我們用來開發php的擴展程序。它具有速度極快的特點。不需要知道zendengine的知識就可以開發擴展,並且可以訪問php中的各種語法結構和變量。

因為php的很多函數都是來自於c語言命名,因此當你使用c++開發php的擴展的時候,你會感到很親切,感到很熟悉,感到上手很容易。

Zephir

它提供了類型系統,以友好的語言將靜態和動態類型結合在了一起,並使用行業標準的編譯器將其編譯為機器代碼,具有高可維護的特點。

zephir是安全的,它禁止我們使用指針訪問內存,並提供了垃圾回收器,進行垃圾回收,避免了內存洩漏。

它是跨平臺的,可以支持多個系統平臺。

ext_skel

這是php源碼自帶的擴展生成工具,使用它,可以快速搭建一個擴展框架。

使用此方法需要你有c語言的基本知識,會編譯c代碼。

使用phpize生成configure文件,進行編譯安裝。

總結

隨著FFI的出現,php可以更加優雅的使用嵌套其它語言,也許以後,將會出現更多使用php原生語言開發出來的擴展。

相關焦點

  • PHP擴展開發:[1]簡單的HelloWord
    最近摸索CentOS7.0系統的操作比較多,而php對應的擴展部署加載也用的比較多,但是一直都沒有想去開發一個屬於自己的擴展,剛好最近需要用到這個擴展開發,開發一些小功能,所以就開始著手寫一個比較簡單的HelloWord擴展來記錄下。
  • 盤點php的gui圖形界面開發擴展庫
    我們都知道php的底層是c語言實現的,並且它的擴展也是使用c語言來開發的,而且它的大部分功能都是通過擴展來實現的,因此,它也是可以通過擴展庫來實現圖形界面開發的,今天,我們就來盤點php開發圖形界面的擴展庫。
  • PHP FFI - 一種全新的PHP擴展方式
    其實現有大量的PHP擴展是對一些已有的C庫的包裝,比如常用的mysqli, curl, gettext等,PECL中也有大量的類似擴展。傳統的方式,當我們需要用一些已有的C語言的庫的能力的時候,我們需要用C語言寫wrapper,把他們包裝成擴展,這個過程中就需要大家去學習PHP的擴展怎麼寫,當然現在也有一些方便的方式,比如Zephir. 但總還是有一些學習成本的,而有了FFI以後,我們就可以直接在PHP腳本中調用C語言寫的庫中的函數了。
  • PHP FFI詳解 - 一種全新的PHP擴展方式
    其實現有大量的PHP擴展是對一些已有的C庫的包裝,比如常用的mysqli, curl, gettext等,PECL中也有大量的類似擴展。傳統的方式,當我們需要用一些已有的C語言的庫的能力的時候,我們需要用C語言寫wrapper,把他們包裝成擴展,這個過程中就需要大家去學習PHP的擴展怎麼寫,當然現在也有一些方便的方式,比如Zephir. 但總還是有一些學習成本的,而有了FFI以後,我們就可以直接在PHP腳本中調用C語言寫的庫中的函數了。
  • PHP資料庫驅動擴展概述與不同方式連接資料庫總結
    >當然,也有一部分基於PHP擴展框架 開發的擴展不會給PHP程式設計師暴露API接口。比如說PDO MySQL驅動擴展,就沒有向PHP程式設計師暴露API接口,但是向它上層的PDO層提供了一個接口在實際編程中,使用頻度最多的還是以擴展API的方式去連接資料庫mysql擴展
  • 盤點php的gui圖形擴展
    我們都知道php的底層是c語言實現的,並且它的擴展也是使用c語言來開發的,而且它的大部分功能都是通過擴展來實現的,因此,它也是可以通過擴展庫來實現圖形界面開發的,今天,我們就來盤點php開發圖形界面的擴展庫。
  • 技術文章--《PHP擴展及核心》
    一、主要內容:1php擴展的概念和底層實現2編寫一個php擴展的步驟3php底層,Zend 引擎API的介紹 ,HashTable 原理二、相關概念 1.【php擴展】php的插件,也就是php的擴展,因為php的底層就是C語言。php –m 或者 php –i 都可以查看擴展。其實,xhproh, curl都是php的擴展。
  • UPUPW 發布 PHP 7.0 Redis 擴展 dll
    PHP 7.0.0 正式版發布有一段時間了,但是與之對應的擴展組件非常之少,特別是windows上用PHP7搭建開發平臺,組件太少肯定是影響開發的。
  • php 編譯安裝擴展,redis擴展安裝
    1、打開php官方擴展地址:https://pecl.php.net/2、搜索自己想要安裝的擴展3、搜索到結果後,點擊 redis 進入到詳情頁面4、下載相應版本的擴展包,使用命令解壓 tar -zxvf .
  • php開發框架yaf安裝
    yaf是一個php的開發框架,使用了php擴展來增加處理速度,使用框架時安裝一個yaf的擴展,然後用php調用擴展接口。1.從php pecl網站上下載yaf源碼壓縮包yaf-3.0.8.tgz,解壓原始碼tar zxf yaf-3.0.8.tgz2. 編譯源碼包cd yaf-3.0.8/phpize.
  • typecho安裝環境PHP版本、資料庫及擴展支持
    typecho簡潔高效的博客系統,僅有7張數據表以及不到400KB的代碼,新手站長網分享typecho博客安裝環境要求:typecho安裝環境安裝typecho需要PHP版本5.1以上,typecho支持Mysql、PostgreSQL和SQLite三種資料庫類型。
  • memcached的PHP擴展安裝使用
    1、PHP擴展安裝為了LNMP架構中,可以使用memcached緩存,業務代碼為php,需要安裝php的擴展,來實現php操作memcached extension選擇對應擴展包①上傳PHP擴展庫memcached-3.1.3.tgz php
  • 讓PHP能夠調用C的函數-FFI擴展
    其實,PHP 還真為我們準備了一個可以直接調用 C 語言的擴展庫,並且這個擴展庫還是已經默認內置在 PHP 中了,它就是 FFI 擴展。## 什麼是 FFI FFI , Foreign Function Interface,外部函數接口。這個擴展允許我們加載一些公共庫(.dll、.so),其實也就是可以調用一些 C 的數據結構及函數。
  • php異步高並發擴展 swoole-1.6.11 版發布
    簡介: swoole是一個php版本的異步、高並發擴展,是國人被php官方pecl包收錄的力作之一。
  • PHP怎麼安裝redis擴展
    本篇文章主要給大家介紹Windows下PHP安裝Redis擴展的具體步驟方法。下面我們就結合詳細的圖文,給大家介紹Windows下PHP安裝Redis擴展的方法:首先我們打開這個上面給出的下載連結地址,界面如下:這裡我們隨便選擇點擊一個目錄,顯示不同版本的Redis擴展如下:注意,下載安裝Redis擴展包必須要與我們使用的PHP版本相對應。
  • CentOS 下安裝 Redis 及 redis php擴展
    logfile /var/redis/log/redis_6379.log # 設置log文件dir /var/redis/6379 # 設置資料庫目錄最後可如下運行redis:$ redis-server /usr/local/redis/redis.conf建議運行方式優化如下
  • 阿里雲伺服器安裝 php 以及 號稱php最強的一個擴展模塊
    添加opcache擴展 ,並啟用vi /usr/local/php7.2/etc/php.ini啟用 [opcache]; Determines if Zend OPCache is enabledopcache.enable=1 39;export PATH=/usr/local/php7.2/bin:$PATH&查看php 版本 php -v
  • Windows系統下搭建Apache+多版本PHP開發環境
    我從事php相關工作兩年有餘,開發過程中為了省時省力,我一直使用網絡上提供的安裝包完成php開發環境的搭建。早前,在百度貼吧中發布了一個帖子,有些回應。其中有人問我:「Windows如何搭建php開發環境呢?」,我未曾多想便回復了個下載連結於他————他一定有些鄙夷了。為了擺脫這種負罪感,我還是自己實踐一次在windows系統下搭建Apache+多版本PHP開發環境吧。
  • php5.3以上版本連接sqlserver資料庫方法 sqlsrv擴展安裝
    sqlserver2008及以上版本,微軟廢棄了對php自帶擴展的支持,php5.3以上版本默認不再支持原有的sqlserver連接方式,需要安裝微軟官方提供的驅動以及sqlsrv、pdo_sqlsrv擴展。
  • PHP使用thrift做服務端開發
    php使用thrift做服務端開發thrift採用接口描述語言定義和創建服務,用二進位格式傳輸數據