PHP语言的特性决定是不适合写服务类的,习惯于Java/C#/Golang之后,用PHP来此类服务,非常蹩脚,天然的属性已决定。因为最近不少客户要接入淘宝开放平台,提供淘宝订单的数据服务。后端的推送服务采用Golang开发, 客户端的技术选型取决于客户的技术情况,有用Java的,也有用PHP的。Java的我们已经相应的客户端模型。

安装Composer

Composer 是 PHP5.3以上 的一个依赖管理工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会安装这些依赖的库文件。它仅仅是一个依赖关系的管理,如同在iOS开发中Swift 和 Objective-C工程中使用的CocoaPods一样。 安装前需确保系统PHP版本在5.3以上,在终端中执行以下命令下载Composer可执行文件:

curl -sS https://getcomposer.org/installer | php

如果要想全局生效需把composer.phar移到系统/usr/local/bin/目录下:

mv composer.phar /usr/local/bin/composer

然后在全部就可以使用composer,再也不用每次都输入长长的php composer.phar了。至此算是安装完毕。
版本更新,如果有则更新到最新版本

composer selfupdate

使用Composer

安装websocket,执行下面语句

 composer require textalk/websocket
 注意:base.php对read方法中需要修改,不能收到空串就报异常,因为服务端不会一定发数据过来。

omposer根据json配置开始下载所依赖的库文件,安装完毕后(若无)会生成一个composer.lock文件,如果你熟悉cocoapods的话应该知道也有个文件Podfile.lock。

composer.lock作用锁定当前的配置文件,如果已存在,在下次执行install操作时会自动读取composer.lock中的信息,即使你已经修该了composer.json文件此时也不会生效。

composer update

至此已经安装了php websocket client了,后面就是讲如何做一个淘宝订单推送接入的客户端了。

附:源码编译安装PHP及依赖

如果有必要,也是可以编译安装PHP,在Mac上默认是没有开启pcntl的, 这些是用于多线程处理,用于websocket发心跳给服务端。

报错
/usr/include/php/main/php.h: No such file or directory

执行

# macOS 10.15
 sudo mount -uw /
 sudo ln -s "$(xcrun --show-sdk-path)/usr/include" /usr/include
 export SDKROOT="$(xcrun --show-sdk-path)"
 echo "export SDKROOT=\"\$(xcrun --show-sdk-path)\"" >> ~/.bash_profile
 sudo DevToolsSecurity -enable

安装openssl-dev,否则出现
解决Mac OS编译安装时出现 cannot find openssl's 错误的问题

  brew install openssl

编译安装

cd  /Users/miller/Downloads/php-7.3.11 
./buildconf --force
  ./configure --prefix=/usr/local/php/php7 \     
     --enable-bcmath \
     --enable-pcntl \ 
     --with-openssl \ 
      --enable-fpm \
     --with-gd \
     --enable-gd-native-ttf \
     --with-freetype-dir \
     --with-jpeg-dir \
     --with-png-dir \
     --enable-intl \
     --enable-mbstring \
     --with-mcrypt \
     --enable-mysqlnd \
     --with-mysql-sock=/tmp/mysql.sock \
     --with-mysqli=mysqlnd \
     --with-pdo-mysql=mysqlnd \
     --with-pdo-sqlite \
     --with-zlib-dir=/usr/local/opt/zlib \
      --disable-phpdbg \
     --disable-phpdbg-webhelper \
     --enable-opcache \ 
         --enable-simplexml \
     --with-sqlite3 \
     --enable-xmlreader \
     --enable-xmlwriter \
     --enable-zip \
     --enable-sockets \
     --with-xmlrpc
      
make && make install

编译配置中,有很多依赖都是写死的路径,你可以根据你自己的路径进行配置。

检查是否安装成功

php --ri pcntl
Comments are closed.