導航:首頁 > 編程語言 > phppecl使用

phppecl使用

發布時間:2022-05-24 10:16:29

php swoole 只能運行在php-cli 環境嗎

一直想寫點Swoole的東西,畢竟它重新定義了php,卻一直不知道怎麼下手寫Swoole涉及的知識點非常多,互為表裡,每次想寫都發現根本理不出一個頭緒Swoole是一個php的擴展,它的核心目的就是解決php在實現server服務中可能遇到的一系列問題,這些問題用源生的php往往並不能很高效(執行效率)的解決,一般也不會使用php來解決,所以會有說swolle重新定義的php的說法。
其實swoole也提供了一個框架,swoole framework是基於swoole extension設計的一個框架,要用好這個框架,還是要先了解swoole extension。
擴展的英文名稱是Extension,php擴展是用C語言作為開發語言,基於Zend引擎提供的API,編譯成的一個動態庫。
如果曾經做過類似動態庫調用開發的童鞋可能會更好理解一些,例如Android中的NDK開發在php的配置文件中配置好extension的屬性後,就可以引用這個動態庫了。
也就是說,swoole本身是用C語言編寫的,它可以讓php獲得一些額外的function。
然後是運行方式,swoole的許多功能都只能運行在cli模式下,而cli模式往往是很多剛接觸swoole的phper遇到的第一個問題。
有時候其實只是需要轉變一下思路
我們現在整理一下最常見的php代碼執行方式:
安裝apache、php
配置apache對那個目錄進行php解析
用瀏覽器訪問那個目錄的php文件
更多的細節這里就不提了,畢竟我相信每個phper對這個都是很熟悉的。
但這里就開始出現了第一個問題,我們知道,php是一個腳本語言,腳本語言的核心特點在於不用編譯,隨時執行,而執行腳本的工具就是解析器,而php的解析器就是zend引擎。
嚴格來說,zend並不是唯一的選擇,不過,zend是最官方的。另外,Zend Studio和Zend Engine不是同一個東西,本文中的Zend全部指Zend Engine。
換個角度講,只要有解析器,寫好的php腳本就是可以執行的,而zend引擎與apache之間並沒有絕對的關系實際上,apahce是調用了zend對php腳本進行執行,然後將執行結果輸出給了瀏覽器所以所謂cli模式(CommandLine,命令行模式),其實就是在命令行下直接調用zend引擎對php腳本進行解析並執行,並獲得程序輸出結果的php腳本執行方式。
其實php也可以作為shell腳本來使用哦,就像bash shell一樣既然問題講清楚了,在一個系統中具體怎麼操作呢?
本文以CentOS 7.5作為系統環境,swoole是針對linux系統開發的,windows下並不適用。學習swoole的一個前題是懂得基本的linux系統使用。
當安裝好php的時候,找到php的安裝目錄,如果是默認安裝的話,可以試試whereis命令# 某種簡單的方法
whereis php
> /usr/local/bin/php;
locate whereis find這些命令都可以試試,目的是找到php然後我們來寫一個最經典的php腳本:
<?php
//vi hello_cli.php
echo 'Hello PHP Cli';
編寫純php腳本時,php標簽不要封口
然後我們在shell里執行它:
/usr/local/bin/php hello_cli.php
> Hello PHP Cli
這段代碼中的第一個php,是一個可執行文件,它接受一個php腳本文件作為輸入參數,並解析執行這個php腳本文件(通過zend)。
沒有錯,第一個cli模式下的php程序就被你執行成功了!
默認情況下,php都會被安裝在了$PATH的目錄下,那就可以直接省略路徑前綴了,下文中調用php的時候,全都省略了路徑前綴。
因為swoole是pecl的項目,所以使用pecl安裝是最簡單的方法,強烈推薦第一次接觸的童鞋先使用pecl安裝,在熟悉了swoole之後,再考慮使用編譯安裝的方式以獲取更多進階功能。
pecl這個工具基本都會被安裝在與php相同的目錄下(往往也都是$PATH目錄)pecl install swoole
執行以下命令查看是否安裝成功:
php -m | grep swoole
> swoole
如果正確的輸出了swoole,那麼恭喜你,這次安裝很成功另一個常見的比較麻煩的問題是,有些童鞋的電腦里安裝了多個php,而安裝的時候沒有正確的安裝到預期的php的擴展目錄中,就會導致無法正常工作,解決方案就是弄清楚各個php安裝目錄及配置關系,選擇正確的目錄進行安裝。
其實本文還沒正式開始介紹swoole,都是在學習swoole之前的准備工作,swoole的上手門檻比一般的php應用要高的多,如果沒有網路開發和操作系統方面的一些知識,學習它並不是一件容易的事情,學習曲線很陡峭。
這句話我在群里說了無數次
很多新手會詬病swoole的手冊寫的太模糊,其實是前置知識不足,而手冊也給出了需要的前置知識列表,以下引用至官網的手冊-學習swoole需要哪些知識?
多進程/多線程
了解Linux操作系統進程和線程的概念
了解Linux進程/線程切換調度的基本知識
了解進程間通信的基本知識,如管道、UnixSocket、消息隊列、共享內存socket
了解SOCKET的基本操作如accept/connect、send/recv、close、listen、bind了解SOCKET的接收緩存區、發送緩存區、阻塞/非阻塞、超時等概念IO復用
了解select/poll/epoll
了解基於select/epoll實現的事件循環,Reactor模型了解可讀事件、可寫事件
TCP/IP網路協議
了解TCP/IP協議
了解TCP、UDP傳輸協議
調試工具
使用gdb調試Linux程序
使用strace跟蹤進程的系統調用
使用tcpmp跟蹤網路通信過程
其他Linux系統工具,如ps、lsof、top、vmstat、netstat、sar、ss等學習並理解一個新事務並不是一個容易的事情,特別對於swoole這種具備一定顛覆性的工具,要有耐心和實踐。
淡定的把手冊看完,遇到不理解的名詞學會使用搜索引擎學習,swoole的手冊其實是個大寶庫,網路開發常見的問題其實里邊都涉及到了。

❷ php rpc好用嗎,有什麼優缺點php rpc框架哪個好

什麼是RPC框架? 如果用一句話概括RPC就是:遠程調用框架(Remote Procere Call)那什麼是遠程調用?通常我們調用一個php中的方法,比如這樣一個函數方法: localAdd(10, 20),localAdd方法的具體實現要麼是用戶自己定義的,要麼是php庫函數中自帶的,也就說在localAdd方法的代碼實現在本地,它是一個本地調用!遠程調用意思就是:被調用方法的具體實現不在程序運行本地,而是在別的某個遠程地方。

遠程調用原理

比如 A (client) 調用 B (server) 提供的remoteAdd方法:

❸ 如何使用php中oauth開發包及oauth

windows的下載地址:http://pecl.php.net/package/oauth/1.2.3/windows

需要此文件php_oauth.dll

放入/bin/php[version]/ext

您需要更改 php.ini 載入 oauth (動態擴展)

extension=php_oauth.dll

linux的下載地址:http://pecl.php.net/get/oauth-1.2.3.tgz

tar -zxf oauth-1.2.3.tgz && cd oauth-1.2.3

/usr/local/php5/bin/phpize

/configure --with-php-config=/usr/local/php5/bin/php-config

make && make install

vi php.ini #修改php配置文件載入oauth擴展

添加extension="oauth.so"

使用篇:
$req_url = 'https://oauth.lvtao.net/oauth/request_token';
$authurl = 'https://www.j66.org/oauth';
$acc_url = 'https://oauth.lvtao.net/oauth/access_token';
$api_url = 'https://oauth.lvtao.net/api/0.1';
$conskey = 'your_consumer_key';
$conssec = 'your_consumer_secret';

session_start();

// In state=1 the next request should include an oauth_token.
// If it doesn't go back to 0
if(!isset($_GET['oauth_token']) && $_SESSION['state']==1) $_SESSION['state'] = 0;
try {
$oauth = new OAuth($conskey,$conssec,OAUTH_SIG_METHOD_HmacSHA1,OAUTH_AUTH_TYPE_URI);
$oauth->enableDebug();
if(!isset($_GET['oauth_token']) && !$_SESSION['state']) {
$request_token_info = $oauth->getRequestToken($req_url);
$_SESSION['secret'] = $request_token_info['oauth_token_secret'];
$_SESSION['state'] = 1;
header('Location: '.$authurl.'?oauth_token='.$request_token_info['oauth_token']);
exit;
} else if($_SESSION['state']==1) {
$oauth->setToken($_GET['oauth_token'],$_SESSION['secret']);
$access_token_info = $oauth->getAccessToken($acc_url);
$_SESSION['state'] = 2;
$_SESSION['token'] = $access_token_info['oauth_token'];
$_SESSION['secret'] = $access_token_info['oauth_token_secret'];
}
$oauth->setToken($_SESSION['token'],$_SESSION['secret']);
$oauth->fetch("$api_url/user.json");
$json = json_decode($oauth->getLastResponse());
print_r($json);
} catch(OAuthException $E) {
print_r($E);
}

❹ php 怎麼安裝擴展

在windows平台上,主要是三個步驟:

1、下載php擴展庫文件;

一般在http://pecl.php.net/上就有下載信息。

2、解壓縮文件,將*.dll文件復制到PHP程序主目錄下的「ext」或者「extension」目錄。

3、打開php.ini文件,在「Dynamic Extensions」配置段中加上「extension=*.dll」,關閉文件,重新啟動一下伺服器就可以載入成功了。

❺ 如何捋清楚php的pecl和pear,composer三者的區別與聯系

這三者都與php相關,pecl是php的一種規范,pear是php開發的一個庫,composer是一個安裝插件庫的軟體。

希望我的回答可以幫到你,有什麼不懂可以追問。

❻ php中的pecl是什麼

從網路中的介紹看應該是過濾的
可以參照《大道PHP:LAMP+ZEND+開源框架組合開發與實戰》這本書 裡面應該有這個庫的介紹以及功能的使用等

❼ PECL的簡介

PECL 的全稱是 The PHP Extension Community Library ,是一個開放的並通過 PEAR(PHP Extension and Application Repository,PHP 擴展和應用倉庫)打包格式來打包安裝的 PHP 擴展庫倉庫。通過 PEAR 的 Package Manager 的安裝管理方式,可以對 PECL 模塊進行下載和安裝。與以往的多數 PEAR 包不同的是,PECL 擴展包含的是可以編譯進 PHP Core 的 C 語言代碼,因此可以將 PECL 擴展庫編譯成為可動態載入的 .so 共享庫,或者採用靜態編譯方式與 PHP 源代碼編譯為一體的方法進行擴展。PECL 擴展庫包含了對於 XML 解析,資料庫訪問,郵件解析,嵌入式的 Perl 以及 Pthyon 腳本解釋器等諸多的 PHP 擴展模塊,因此從某種意義上來說,在運行效率上 PECL 要高於以往諸多的 PEAR 擴展庫。

❽ 如何安裝pecl

phpeclipse配置安裝教程詳解

1.解壓本站下載phpeclipse插件,你會發現該解壓文件夾下會存在features和plugins兩個文件夾還有1個site.xml文件

2.使用PHPEclipse 之前, 需要安裝以下軟體:
1)、Eclipse 3.1.x
2)、J2SE 5.0
3)、DBG PHP Debugger matching the PHP version you are using
4)、Eclipse Web Tools Platform Project 1.0.x
3.將features和plugins中的內容復制到Eclipse的相應文件夾下,將site.xml復制到Eclipse的根目錄即可。然後啟動Eclipse(如果Eclipse已經啟動,則重啟Eclipse以使新添加的文件生效)。
5.如圖所示,依次選擇「Window>>Open Perspective>>Other…」,打開視圖選擇窗口。

6.在「Open Perspective」(視圖選擇)窗口中,找到「PHP」選項並雙擊,將在Eclipse中添加PHP視圖。

7.添加成功後,會在Eclipse右上角看到「PHP」的視圖選項,單擊按鈕即可將Eclipse切換到PHP視圖。

7.在Eclipse中依次選擇「Window>>Preferences」,在彈出的Preferences窗口的從左側菜單欄中依次點擊「PHPeclipse>>PHP External Tools」,修改PHP配置信息。同時,我們發現「PHP External Tools」下包含三個子菜單:Apache、MySQL、XAMPP,用於設置Apache、MySQL、XAMPP的配置信息。

8.點擊「Apache」子菜單,修改Apache配置信息。將Apache路徑修改為本機安裝路徑。修改樣例如圖所示,具體值以自己電腦為准。

9.修改MySQL配置信息,修改樣例如圖所示,具體值以自己電腦為准。

10.修改XAMPP配置信息,修改樣例如圖所示,具體值以自己電腦為准。修改完畢後點擊「OK」保存修改內容。

❾ php中的PEAR,PECL,APC是什麼

PECL是擴展庫,用PEAR命令安裝,APC是Alternative PHP Cache的簡稱,是一種緩存技術。

❿ php5.4對於pear,pecl怎麼使用兼容嗎

如果是自用,pear和pecl都不用急著裝,用到什麼再裝什麼。

特別是win版幾乎已經包括了大部分的pecl組件。
pear的用處不是很大,依賴pear的代碼會比較慢。通常可以參考。

安裝方法,先下go-pear.phar 文件
http://pear.php.net/go-pear.phar
然後在命令行運行:
php go-pear.phar
會提示選項,選擇要安裝的包,然後開始安裝

Direct IO是posix環境的組件,即主要用於linux環境,win下不用不具備。
是直接操作OS操作系統提供的文件訪問的介面。
在linux下所有的硬體設備都是文件形式。所以這種直接操作主要用於操作硬體IO,而不是設計用來讀寫傳統磁碟文件。如果不用linux,如果不用直接和設備通訊,基本不需要使用這個庫。

閱讀全文

與phppecl使用相關的資料

熱點內容
無線路由如何設置成伺服器 瀏覽:136
QQ飛車源碼更新 瀏覽:897
虛擬機中編譯器 瀏覽:474
台達PLC編譯按鈕在哪裡 瀏覽:137
非編程計算器多少錢 瀏覽:653
房本還完貸款解壓 瀏覽:816
中國程序員有出名嗎 瀏覽:546
亳州雲伺服器 瀏覽:630
程序員最難的面試 瀏覽:892
配音秀app怎麼誦讀 瀏覽:751
sparkcore源碼 瀏覽:100
程序員中年生活 瀏覽:355
讀取加密信息失敗怎麼回事 瀏覽:510
編譯過程之後是預處理嗎 瀏覽:351
安卓是基於什麼做出來 瀏覽:600
視頻字幕提取APP怎麼使用 瀏覽:59
js通過ip地址連接伺服器嗎 瀏覽:848
java數字金額大寫金額 瀏覽:858
人人影視路由器固件編譯 瀏覽:967
照片通訊錄簡訊怎麼從安卓到蘋果 瀏覽:458