thinkphp5图书馆.zip

  • i6_533498
    了解作者
  • 4.8MB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-06-15 06:48
    上传日期
用tp5框架+wamp服务器搭建的一个简单的图书馆里网站。代码简单,适合新手
thinkphp5图书馆.zip
内容介绍
# Workerman [![Gitter](https://badges.gitter.im/walkor/Workerman.svg)](https://gitter.im/walkor/Workerman?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=body_badge) [![Latest Stable Version](https://poser.pugx.org/workerman/workerman/v/stable)](https://packagist.org/packages/workerman/workerman) [![Total Downloads](https://poser.pugx.org/workerman/workerman/downloads)](https://packagist.org/packages/workerman/workerman) [![Monthly Downloads](https://poser.pugx.org/workerman/workerman/d/monthly)](https://packagist.org/packages/workerman/workerman) [![Daily Downloads](https://poser.pugx.org/workerman/workerman/d/daily)](https://packagist.org/packages/workerman/workerman) [![License](https://poser.pugx.org/workerman/workerman/license)](https://packagist.org/packages/workerman/workerman) ## What is it Workerman is an asynchronous event driven PHP framework with high performance for easily building fast, scalable network applications. Supports HTTP, Websocket, SSL and other custom protocols. Supports libevent, [HHVM](https://github.com/facebook/hhvm) , [ReactPHP](https://github.com/reactphp/react). ## Requires PHP 5.3 or Higher A POSIX compatible operating system (Linux, OSX, BSD) POSIX and PCNTL extensions for PHP ## Installation ``` composer require workerman/workerman ``` ## Basic Usage ### A websocket server ```php <?php require_once __DIR__ . '/vendor/autoload.php'; use Workerman\Worker; // Create a Websocket server $ws_worker = new Worker("websocket://0.0.0.0:2346"); // 4 processes $ws_worker->count = 4; // Emitted when new connection come $ws_worker->onConnect = function($connection) { echo "New connection\n"; }; // Emitted when data received $ws_worker->onMessage = function($connection, $data) { // Send hello $data $connection->send('hello ' . $data); }; // Emitted when connection closed $ws_worker->onClose = function($connection) { echo "Connection closed\n"; }; // Run worker Worker::runAll(); ``` ### An http server ```php require_once __DIR__ . '/vendor/autoload.php'; use Workerman\Worker; // #### http worker #### $http_worker = new Worker("http://0.0.0.0:2345"); // 4 processes $http_worker->count = 4; // Emitted when data received $http_worker->onMessage = function($connection, $data) { // $_GET, $_POST, $_COOKIE, $_SESSION, $_SERVER, $_FILES are available var_dump($_GET, $_POST, $_COOKIE, $_SESSION, $_SERVER, $_FILES); // send data to client $connection->send("hello world \n"); }; // run all workers Worker::runAll(); ``` ### A WebServer ```php require_once __DIR__ . '/vendor/autoload.php'; use Workerman\WebServer; use Workerman\Worker; // WebServer $web = new WebServer("http://0.0.0.0:80"); // 4 processes $web->count = 4; // Set the root of domains $web->addRoot('www.your_domain.com', '/your/path/Web'); $web->addRoot('www.another_domain.com', '/another/path/Web'); // run all workers Worker::runAll(); ``` ### A tcp server ```php require_once __DIR__ . '/vendor/autoload.php'; use Workerman\Worker; // #### create socket and listen 1234 port #### $tcp_worker = new Worker("tcp://0.0.0.0:1234"); // 4 processes $tcp_worker->count = 4; // Emitted when new connection come $tcp_worker->onConnect = function($connection) { echo "New Connection\n"; }; // Emitted when data received $tcp_worker->onMessage = function($connection, $data) { // send data to client $connection->send("hello $data \n"); }; // Emitted when new connection come $tcp_worker->onClose = function($connection) { echo "Connection closed\n"; }; Worker::runAll(); ``` ### Enable SSL ```php <?php require_once __DIR__ . '/vendor/autoload.php'; use Workerman\Worker; // SSL context. $context = array( 'ssl' => array( 'local_cert' => '/your/path/of/server.pem', 'local_pk' => '/your/path/of/server.key', 'verify_peer' => false, ) ); // Create a Websocket server with ssl context. $ws_worker = new Worker("websocket://0.0.0.0:2346", $context); // Enable SSL. WebSocket+SSL means that Secure WebSocket (wss://). // The similar approaches for Https etc. $ws_worker->transport = 'ssl'; $ws_worker->onMessage = function($connection, $data) { // Send hello $data $connection->send('hello ' . $data); }; Worker::runAll(); ``` ### Custom protocol Protocols/MyTextProtocol.php ```php namespace Protocols; /** * User defined protocol * Format Text+"\n" */ class MyTextProtocol { public static function input($recv_buffer) { // Find the position of the first occurrence of "\n" $pos = strpos($recv_buffer, "\n"); // Not a complete package. Return 0 because the length of package can not be calculated if($pos === false) { return 0; } // Return length of the package return $pos+1; } public static function decode($recv_buffer) { return trim($recv_buffer); } public static function encode($data) { return $data."\n"; } } ``` ```php require_once __DIR__ . '/vendor/autoload.php'; use Workerman\Worker; // #### MyTextProtocol worker #### $text_worker = new Worker("MyTextProtocol://0.0.0.0:5678"); $text_worker->onConnect = function($connection) { echo "New connection\n"; }; $text_worker->onMessage = function($connection, $data) { // send data to client $connection->send("hello world \n"); }; $text_worker->onClose = function($connection) { echo "Connection closed\n"; }; // run all workers Worker::runAll(); ``` ### Timer ```php require_once __DIR__ . '/vendor/autoload.php'; use Workerman\Worker; use Workerman\Lib\Timer; $task = new Worker(); $task->onWorkerStart = function($task) { // 2.5 seconds $time_interval = 2.5; $timer_id = Timer::add($time_interval, function() { echo "Timer run\n"; } ); }; // run all workers Worker::runAll(); ``` ### AsyncTcpConnection (tcp/ws/text/frame etc...) ```php require_once __DIR__ . '/vendor/autoload.php'; use Workerman\Worker; use Workerman\Connection\AsyncTcpConnection; $worker = new Worker(); $worker->onWorkerStart = function() { // Websocket protocol for client. $ws_connection = new AsyncTcpConnection("ws://echo.websocket.org:80"); $ws_connection->onConnect = function($connection){ $connection->send('hello'); }; $ws_connection->onMessage = function($connection, $data){ echo "recv: $data\n"; }; $ws_connection->onError = function($connection, $code, $msg){ echo "error: $msg\n"; }; $ws_connection->onClose = function($connection){ echo "connection closed\n"; }; $ws_connection->connect(); }; Worker::runAll(); ``` ### Async Mysql of ReactPHP ``` composer require react/mysql ``` ```php <?php require_once __DIR__ . '/vendor/autoload.php'; use Workerman\Worker; $worker = new Worker('tcp://0.0.0.0:6161'); $worker->onWorkerStart = function() { global $mysql; $loop = Worker::getEventLoop(); $mysql = new React\MySQL\Connection($loop, array( 'host' => '127.0.0.1', 'dbname' => 'dbname', 'user' => 'user', 'passwd' => 'passwd', )); $mysql->on('error', function($e){ echo $e; }); $mysql->connect(function ($e) { if($e) { echo $e; } else { echo "connect success\n"; } }); }; $worker->onMessage = function($connection, $data) { global $mysql; $mysql->query('show databases' /*trim($data)*/, function ($command, $mysql) use ($connection) { if ($command->hasError()) { $error = $command->getError(); } else { $results = $command->resultRows; $fields = $command->resultFields; $connection->send(json_encode($results)); } }); }; Worker::runAll(); ``` ### Async Redis of ReactPHP ``` composer require clue/redis-react ``` ```php <?php require_once __DIR__ . '/vendor/autoload.php'; use Clu
评论
    相关推荐
    • PHP 简易服务器
      PHP简易服务器PHP简易服务器PHP简易服务器PHP简易服务器PHP简易服务器
    • 无敌服务器php配置文件
      无敌服务器php配置文件| 无敌服务器php配置文件
    • mqtt协议推送服务器php
      好的运用,请大家一起分享,方便php后台和android的国通
    • wifidog认证服务器php脚本
      php编写的wifidog认证服务器脚本,主要实现了用户的登录校验和认证授权。
    • phoenix:HTTP服务器PHP扩展
      phoenix是用于PHP扩展的HTTP服务器 <?php function work_cb ( PhxClient $ client ) { $ name = $ client -> getUriArg ( 'name' ); $ client -> status ( 200 ); $ client -> sendHeader ( "connection: ...
    • php代理服务器 php反代 网页代理
      将upload文件夹下文件放到你的服务器上 这样就可以通过你的服务器访问网页了 很好用 也可以用于简单的 甚至是进入局域网
    • 易语言PHP服务器
      易语言PHP服务器源码,PHP服务器,监听服务,编码转换程序,进制转换,取页面地址,取域名,取端口,取指定内容中间,取文本之间,取文本之后,ChrW,十到十六,到十六进制文本,去除首部零,URL编码_UTF8,Ansi转Utf8,Unicode转Utf8...
    • window2003服务器php环境配置
      此文件包含了文档和文件,一条龙服务,绝对一次成功
    • 服务器php环境搭建(phpwamp服务器集成环境下载)
      服务器php环境搭建(phpwamp服务器集成环境下载)
    • 易语言PHP服务器
      易语言PHP服务器源码系统结构:监听服务,编码转换程序,进制转换,取页面地址,取域名,取端口,取指定内容中间,取文本之间,取文本之后,ChrW,十到十六,到十六进制文本,去除首部零,URL编码