Skip to content

Commit

Permalink
update to 1.5 version
Browse files Browse the repository at this point in the history
  • Loading branch information
crazywhalecc committed Jun 5, 2020
1 parent a818375 commit 59fde3d
Show file tree
Hide file tree
Showing 17 changed files with 202 additions and 50 deletions.
7 changes: 4 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

[![作者QQ](https://img.shields.io/badge/作者QQ-627577391-orange.svg)]()
[![zhamao License](https://img.shields.io/hexpm/l/plug.svg?maxAge=2592000)](https://github.com/zhamao-robot/zhamao-framework/blob/master/LICENSE)
[![版本](https://img.shields.io/badge/version-1.4-green.svg)]()
[![版本](https://img.shields.io/badge/version-1.5-green.svg)]()

[![stupid counter](https://img.shields.io/github/search/zhamao-robot/zhamao-framework/stupid.svg)](https://github.com/zhamao-robot/zhamao-framework/search?q=stupid)
[![TODO counter](https://img.shields.io/github/search/zhamao-robot/zhamao-framework/TODO.svg)](https://github.com/zhamao-robot/zhamao-framework/search?q=TODO)
Expand All @@ -19,8 +19,9 @@ zhamao-framework 是一个基于 酷Q 的 PHP Swoole 的机器人框架,它会
除了起到解析消息的作用,炸毛框架 还提供了完整的 WebSocket + HTTP 服务器,你还能用此框架构建出高性能的 API 接口服务器。

## 开始
1. 你可以使用项目的 `Use this template` 功能将框架克隆到你的公开或私有仓库进行开发
2. 你也可以直接到 **Release** 中下载最新的 phar 包,放入文件夹后快速启动框架
先安装环境,环境安装见下方文档。
1. `composer create-project zhamao/framework-starter` 从模板新建基础文档结构进行使用
2. 你也可以直接到 **Release** 中下载最新的 phar 包,放入文件夹后 `php server.phar` 快速启动框架
3. 还可以使用 Dockerfile 构建 Docker 容器

## 文档
Expand Down
6 changes: 1 addition & 5 deletions bin/phar-build
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,10 @@
<?php /** @since 1.2.1 */
global $version;
echo "version: " . ($version = json_decode(file_get_contents(__DIR__ . "/../composer.json"), true)["version"]) . PHP_EOL;
global $wechat_patch;
$wechat_patch = "PD9waHAKCgpuYW1lc3BhY2UgWk07CgoKdXNlIENvOwp1c2UgRnJhbWV3b3JrXENvbnNvbGU7CnVzZSBGcmFtZXdvcmtcWk1CdWY7CnVzZSBNb2R1bGVcV2VjaGF0UGF0Y2hcV2VjaGF0SGFuZGxlcjsKdXNlIFN3b29sZVxIdHRwXFJlcXVlc3Q7CnVzZSBaTVxBUElcQ1FBUEk7CnVzZSBaTVxDb25uZWN0aW9uXFdTQ29ubmVjdGlvbjsKdXNlIFpNXEV4Y2VwdGlvblxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb247CnVzZSBaTVxFeGNlcHRpb25cV2FpdFRpbWVvdXRFeGNlcHRpb247CnVzZSBaTVxIdHRwXFJlc3BvbnNlOwp1c2UgU3dvb2xlXFdlYlNvY2tldFxGcmFtZTsKdXNlIFN3b29sZVxXZWJTb2NrZXRcU2VydmVyOwp1c2UgWk1cVXRpbHNcWk1VdGlsOwoKYWJzdHJhY3QgY2xhc3MgTW9kQmFzZQp7CiAgICAvKiogQHZhciBTZXJ2ZXIgKi8KICAgIHByb3RlY3RlZCAkc2VydmVyOwogICAgLyoqIEB2YXIgRnJhbWUgKi8KICAgIHByb3RlY3RlZCAkZnJhbWU7CiAgICAvKiogQHZhciBhcnJheSAqLwogICAgcHJvdGVjdGVkICRkYXRhOwogICAgLyoqIEB2YXIgUmVxdWVzdCAqLwogICAgcHJvdGVjdGVkICRyZXF1ZXN0OwogICAgLyoqIEB2YXIgUmVzcG9uc2UgKi8KICAgIHByb3RlY3RlZCAkcmVzcG9uc2U7CiAgICAvKiogQHZhciBpbnQgKi8KICAgIHByb3RlY3RlZCAkZmQ7CiAgICAvKiogQHZhciBpbnQgKi8KICAgIHByb3RlY3RlZCAkd29ya2VyX2lkOwogICAgLyoqIEB2YXIgV1NDb25uZWN0aW9ufFJlc3BvbnNlICovCiAgICBwcm90ZWN0ZWQgJGNvbm5lY3Rpb247CgogICAgcHJvdGVjdGVkICRoYW5kbGVfdHlwZSA9IE1vZEhhbmRsZVR5cGU6OkNRX01FU1NBR0U7CgogICAgcHVibGljICRibG9ja19jb250aW51ZSA9IGZhbHNlOwogICAgLyoqCiAgICAgKiBAdmFyIGFycmF5CiAgICAgKi8KICAgIHB1YmxpYyAkd3hfcmVwbHkgPSBbXTsKCiAgICAvKiogQHZhciBSZXNwb25zZSAqLwogICAgcHVibGljICR3eF9yZXNwb25zZSA9IG51bGw7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRwYXJhbTAgPSBbXSwgJGhhbmRsZV90eXBlID0gMCkgewogICAgICAgIGlmIChpc3NldCgkcGFyYW0wWyJzZXJ2ZXIiXSkpICR0aGlzLT5zZXJ2ZXIgPSAkcGFyYW0wWyJzZXJ2ZXIiXTsKICAgICAgICBpZiAoaXNzZXQoJHBhcmFtMFsiZnJhbWUiXSkpICR0aGlzLT5mcmFtZSA9ICRwYXJhbTBbImZyYW1lIl07CiAgICAgICAgaWYgKGlzc2V0KCRwYXJhbTBbImRhdGEiXSkpICR0aGlzLT5kYXRhID0gJHBhcmFtMFsiZGF0YSJdOwogICAgICAgIGlmIChpc3NldCgkcGFyYW0wWyJyZXF1ZXN0Il0pKSAkdGhpcy0+cmVxdWVzdCA9ICRwYXJhbTBbInJlcXVlc3QiXTsKICAgICAgICBpZiAoaXNzZXQoJHBhcmFtMFsicmVzcG9uc2UiXSkpICR0aGlzLT5yZXNwb25zZSA9ICRwYXJhbTBbInJlc3BvbnNlIl07CiAgICAgICAgaWYgKGlzc2V0KCRwYXJhbTBbImZkIl0pKSAkdGhpcy0+ZmQgPSAkcGFyYW0wWyJmZCJdOwogICAgICAgIGlmIChpc3NldCgkcGFyYW0wWyJ3b3JrZXJfaWQiXSkpICR0aGlzLT53b3JrZXJfaWQgPSAkcGFyYW0wWyJ3b3JrZXJfaWQiXTsKICAgICAgICBpZiAoaXNzZXQoJHBhcmFtMFsiY29ubmVjdGlvbiJdKSkgewogICAgICAgICAgICBpZiAoJHBhcmFtMFsiY29ubmVjdGlvbiJdIGluc3RhbmNlb2YgUmVzcG9uc2UpCiAgICAgICAgICAgICAgICAkdGhpcy0+d3hfcmVzcG9uc2UgPSAkcGFyYW0wWyJjb25uZWN0aW9uIl07CiAgICAgICAgICAgICR0aGlzLT5jb25uZWN0aW9uID0gJHBhcmFtMFsiY29ubmVjdGlvbiJdOwogICAgICAgIH0KICAgICAgICAkdGhpcy0+aGFuZGxlX3R5cGUgPSAkaGFuZGxlX3R5cGU7CiAgICB9CgogICAgLyoqCiAgICAgKiBvbmx5IGNhbiB1c2VkIGJ5IGNxLT5tZXNzYWdlIGV2ZW50IGZ1bmN0aW9uCiAgICAgKiBAcGFyYW0gJG1zZwogICAgICogQHBhcmFtIGJvb2wgJHlpZWxkCiAgICAgKiBAcmV0dXJuIG1peGVkCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiByZXBseSgkbXNnLCAkeWllbGQgPSBmYWxzZSkgewogICAgICAgIHN3aXRjaCAoJHRoaXMtPmRhdGFbIm1lc3NhZ2VfdHlwZSJdKSB7CiAgICAgICAgICAgIGNhc2UgImdyb3VwIjoKICAgICAgICAgICAgY2FzZSAicHJpdmF0ZSI6CiAgICAgICAgICAgIGNhc2UgImRpc2N1c3MiOgogICAgICAgICAgICAgICAgcmV0dXJuIENRQVBJOjpxdWlja19yZXBseSgkdGhpcy0+Y29ubmVjdGlvbiwgJHRoaXMtPmRhdGEsICRtc2csICR5aWVsZCk7CiAgICAgICAgICAgIGNhc2UgIndlY2hhdCI6CiAgICAgICAgICAgICAgICAkdGhpcy0+d3hfcmVwbHkgW10gPSAkbXNnOwogICAgICAgICAgICAgICAgLy9Db25zb2xlOjp3YXJuaW5nKCLlvq7kv6Hlm57lpI3mt7vliqDkuoYiIC4gJG1zZyk7CiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBmaW5hbFJlcGx5KCRtc2csICR5aWVsZCA9IGZhbHNlKSB7CiAgICAgICAgJHRoaXMtPmJsb2NrX2NvbnRpbnVlID0gdHJ1ZTsKICAgICAgICBpZiAoJG1zZyA9PSAiIikgcmV0dXJuIHRydWU7CiAgICAgICAgcmV0dXJuICR0aGlzLT5yZXBseSgkbXNnLCAkeWllbGQpOwogICAgfQoKICAgIC8qKgogICAgICogQHBhcmFtIHN0cmluZyAkcHJvbXB0CiAgICAgKiBAcGFyYW0gaW50ICR0aW1lb3V0CiAgICAgKiBAcGFyYW0gc3RyaW5nICR0aW1lb3V0X3Byb21wdAogICAgICogQHJldHVybiBzdHJpbmcKICAgICAqIEB0aHJvd3MgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uCiAgICAgKiBAdGhyb3dzIFdhaXRUaW1lb3V0RXhjZXB0aW9uCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiB3YWl0TWVzc2FnZSgkcHJvbXB0ID0gIiIsICR0aW1lb3V0ID0gNjAwLCAkdGltZW91dF9wcm9tcHQgPSAiIikgewogICAgICAgIGlmICgkcHJvbXB0ICE9ICIiKSAkdGhpcy0+cmVwbHkoJHByb21wdCk7CiAgICAgICAgaWYgKCFpc3NldCgkdGhpcy0+ZGF0YVsidXNlcl9pZCJdLCAkdGhpcy0+ZGF0YVsibWVzc2FnZSJdLCAkdGhpcy0+ZGF0YVsic2VsZl9pZCJdKSkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbigi5Y2P56iL562J5b6F5Y+C5pWw57y65aSxIik7CiAgICAgICAgaWYgKCgkdGhpcy0+ZGF0YVsibWVzc2FnZV90eXBlIl0gPz8gbnVsbCkgPT0gIndlY2hhdCIpIHsKICAgICAgICAgICAgQ29uc29sZTo6d2FybmluZygi5b2T5YmNZmTvvJoiIC4gJHRoaXMtPmNvbm5lY3Rpb24tPmZkKTsKICAgICAgICAgICAgJHRoaXMtPnByb2Nlc3NXWFJlc3BvbnNlKCk7CiAgICAgICAgICAgICR0aGlzLT53eF9yZXNwb25zZSA9IG51bGw7CiAgICAgICAgICAgICR0aGlzLT53eF9yZXBseSA9IFtdOwogICAgICAgIH0KICAgICAgICAkY2lkID0gQ286OmdldHVpZCgpOwogICAgICAgICRhcGlfaWQgPSBaTUJ1Zjo6JGF0b21pY3NbIndhaXRfbXNnX2lkIl0tPmdldCgpOwogICAgICAgIFpNQnVmOjokYXRvbWljc1sid2FpdF9tc2dfaWQiXS0+YWRkKDEpOwogICAgICAgICRoYW5nID0gWwogICAgICAgICAgICAiY29yb3V0aW5lIiA9PiAkY2lkLAogICAgICAgICAgICAidXNlcl9pZCIgPT4gJHRoaXMtPmRhdGFbInVzZXJfaWQiXSwKICAgICAgICAgICAgIm1lc3NhZ2UiID0+ICR0aGlzLT5kYXRhWyJtZXNzYWdlIl0sCiAgICAgICAgICAgICJzZWxmX2lkIiA9PiAkdGhpcy0+ZGF0YVsic2VsZl9pZCJdLAogICAgICAgICAgICAibWVzc2FnZV90eXBlIiA9PiAkdGhpcy0+ZGF0YVsibWVzc2FnZV90eXBlIl0sCiAgICAgICAgICAgICJyZXN1bHQiID0+IG51bGwKICAgICAgICBdOwogICAgICAgIGlmICgkaGFuZ1sibWVzc2FnZV90eXBlIl0gPT0gImdyb3VwIiB8fCAkaGFuZ1sibWVzc2FnZV90eXBlIl0gPT0gImRpc2N1c3MiKSB7CiAgICAgICAgICAgICRoYW5nWyRoYW5nWyJtZXNzYWdlX3R5cGUiXSAuICJfaWQiXSA9ICR0aGlzLT5kYXRhWyR0aGlzLT5kYXRhWyJtZXNzYWdlX3R5cGUiXSAuICJfaWQiXTsKICAgICAgICB9CiAgICAgICAgWk1CdWY6OmFwcGVuZEtleSgid2FpdF9hcGkiLCAkYXBpX2lkLCAkaGFuZyk7CiAgICAgICAgJGlkID0gc3dvb2xlX3RpbWVyX2FmdGVyKCR0aW1lb3V0ICogMTAwMCwgZnVuY3Rpb24gKCkgdXNlICgkYXBpX2lkLCAkdGltZW91dF9wcm9tcHQpIHsKICAgICAgICAgICAgJHIgPSBaTUJ1Zjo6Z2V0KCJ3YWl0X2FwaSIpWyRhcGlfaWRdID8/IG51bGw7CiAgICAgICAgICAgIGlmICgkciAhPT0gbnVsbCkgewogICAgICAgICAgICAgICAgQ286OnJlc3VtZSgkclsiY29yb3V0aW5lIl0pOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgLy9Db25zb2xlOjppbmZvKCLku47ov5nph4zmjILotbfvvZ4iKTsKICAgICAgICBDbzo6c3VzcGVuZCgpOwogICAgICAgIC8vQ29uc29sZTo6aW5mbygi5L+65oGi5aSN5LqG77yBIik7CiAgICAgICAgJHNlc3MgPSBaTUJ1Zjo6Z2V0KCJ3YWl0X2FwaSIpWyRhcGlfaWRdOwogICAgICAgIGlmICgkc2Vzc1sibWVzc2FnZV90eXBlIl0gPT0gIndlY2hhdCIpIHsKICAgICAgICAgICAgJHRoaXMtPmNvbm5lY3Rpb24gPSAkc2Vzc1sid3hfcmVzcG9uc2UiXTsKICAgICAgICAgICAgJHRoaXMtPnd4X3Jlc3BvbnNlID0gJHRoaXMtPmNvbm5lY3Rpb247CiAgICAgICAgICAgIC8vQ29uc29sZTo6d2FybmluZygi5pu/5o2i5ZCO55qEZmTvvJoiLiR0aGlzLT5jb25uZWN0aW9uLT5mZC4i77yM5Zue5aSN55qE5raI5oGv77yaIi4kc2Vzc1sicmVzdWx0Il0pOwogICAgICAgIH0KICAgICAgICBaTUJ1Zjo6dW5zZXRCeVZhbHVlKCJ3YWl0X2FwaSIsICRhcGlfaWQpOwogICAgICAgICRyZXN1bHQgPSAkc2Vzc1sicmVzdWx0Il07CiAgICAgICAgaWYgKGlzc2V0KCRpZCkpIHN3b29sZV90aW1lcl9jbGVhcigkaWQpOwogICAgICAgIGlmICgkcmVzdWx0ID09PSBudWxsKSB0aHJvdyBuZXcgV2FpdFRpbWVvdXRFeGNlcHRpb24oJHRoaXMsICR0aW1lb3V0X3Byb21wdCk7CiAgICAgICAgcmV0dXJuICRyZXN1bHQ7CiAgICB9CgogICAgLyoqCiAgICAgKiBAcGFyYW0gJGFyZwogICAgICogQHBhcmFtICRtb2RlCiAgICAgKiBAcGFyYW0gJHByb21wdF9tc2cKICAgICAqIEByZXR1cm4gbWl4ZWR8c3RyaW5nCiAgICAgKiBAdGhyb3dzIEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbgogICAgICogQHRocm93cyBXYWl0VGltZW91dEV4Y2VwdGlvbgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0QXJncygmJGFyZywgJG1vZGUsICRwcm9tcHRfbXNnKSB7CiAgICAgICAgc3dpdGNoICgkbW9kZSkgewogICAgICAgICAgICBjYXNlIFpNX01BVENIX0FMTDoKICAgICAgICAgICAgICAgICRwID0gJGFyZzsKICAgICAgICAgICAgICAgIGFycmF5X3NoaWZ0KCRwKTsKICAgICAgICAgICAgICAgIHJldHVybiB0cmltKGltcGxvZGUoIiAiLCAkcCkpID09ICIiID8gJHRoaXMtPndhaXRNZXNzYWdlKCRwcm9tcHRfbXNnKSA6IHRyaW0oaW1wbG9kZSgiICIsICRwKSk7CiAgICAgICAgICAgIGNhc2UgWk1fTUFUQ0hfTlVNQkVSOgogICAgICAgICAgICAgICAgZm9yZWFjaCAoJGFyZyBhcyAkayA9PiAkdikgewogICAgICAgICAgICAgICAgICAgIGlmIChpc19udW1lcmljKCR2KSkgewogICAgICAgICAgICAgICAgICAgICAgICBhcnJheV9zcGxpY2UoJGFyZywgJGssIDEpOwogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJHY7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuICR0aGlzLT53YWl0TWVzc2FnZSgkcHJvbXB0X21zZyk7CiAgICAgICAgICAgIGNhc2UgWk1fTUFUQ0hfRklSU1Q6CiAgICAgICAgICAgICAgICBpZiAoaXNzZXQoJGFyZ1sxXSkpIHsKICAgICAgICAgICAgICAgICAgICAkYSA9ICRhcmdbMV07CiAgICAgICAgICAgICAgICAgICAgYXJyYXlfc3BsaWNlKCRhcmcsIDEsIDEpOwogICAgICAgICAgICAgICAgICAgIHJldHVybiAkYTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICR0aGlzLT53YWl0TWVzc2FnZSgkcHJvbXB0X21zZyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0TWVzc2FnZSgpIHsKICAgICAgICByZXR1cm4gJHRoaXMtPmRhdGFbIm1lc3NhZ2UiXSA/PyBudWxsOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRVc2VySWQoKSB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5kYXRhWyJ1c2VyX2lkIl0gPz8gbnVsbDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0R3JvdXBJZCgpIHsKICAgICAgICByZXR1cm4gJHRoaXMtPmRhdGFbImdyb3VwX2lkIl0gPz8gbnVsbDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0TWVzc2FnZVR5cGUoKSB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5kYXRhWyJtZXNzYWdlX3R5cGUiXSA/PyBudWxsOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRSb2JvdElkKCkgewogICAgICAgIHJldHVybiAkdGhpcy0+ZGF0YVsic2VsZl9pZCJdOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRDb25uZWN0aW9uKCkgewogICAgICAgIHJldHVybiAkdGhpcy0+Y29ubmVjdGlvbjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0QmxvY2soJHJlc3VsdCA9IHRydWUpIHsKICAgICAgICAkdGhpcy0+YmxvY2tfY29udGludWUgPSAkcmVzdWx0OwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBmb3JtYXRXWFJlcGx5KCkgewogICAgICAgIGlmICgkdGhpcy0+d3hfcmVwbHkgPT0gW10pIHJldHVybiAiIjsKICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJGxzID0gW107CiAgICAgICAgICAgICRoYXZlX2ltYWdlID0gZmFsc2U7CiAgICAgICAgICAgIGZvcmVhY2ggKCR0aGlzLT53eF9yZXBseSBhcyAkdikgewogICAgICAgICAgICAgICAgd2hpbGUgKCgkY3EgPSBaTVV0aWw6OmdldENRKCR2KSkgIT09IG51bGwpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoJGNxWyJ0eXBlIl0gPT0gImltYWdlIiAmJiAoc3Vic3RyKCRjcVsicGFyYW1zIl1bImZpbGUiXSwgMCwgNykgPT0gImh0dHA6Ly8iIHx8IHN1YnN0cigkY3FbInBhcmFtcyJdWyJmaWxlIl0sIDAsIDgpID09ICJodHRwczovLyIpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICR2ID0gc3RyX3JlcGxhY2UobWJfc3Vic3RyKCR2LCAkY3FbInN0YXJ0Il0sICRjcVsiZW5kIl0gLSAkY3FbInN0YXJ0Il0gKyAxKSwgIjxpbWcgc3JjPSciIC4gJGNxWyJwYXJhbXMiXVsiZmlsZSJdIC4gIic+IiwgJHYpOwogICAgICAgICAgICAgICAgICAgICAgICAkaGF2ZV9pbWFnZSA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHYgPSBzdHJfcmVwbGFjZShtYl9zdWJzdHIoJHYsICRjcVsic3RhcnQiXSwgJGNxWyJlbmQiXSAtICRjcVsic3RhcnQiXSArIDEpLCAiICAiLCAkdik7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJGxzIFtdID0gJHY7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCRoYXZlX2ltYWdlID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAkbXNncyA9IGltcGxvZGUoIlxuXG4iLCAkbHMpOwogICAgICAgICAgICAgICAgJGtleSA9IG1kNSgkbXNncyk7CiAgICAgICAgICAgICAgICBaTUJ1Zjo6YXBwZW5kS2V5KCJodG1sX2NvbnRlbnQiLCAka2V5LCAiPGh0bWwgbGFuZz1cImVuXCI+PGhlYWQ+PG1ldGEgY2hhcnNldD0ndXRmLTgnPjx0aXRsZT48L3RpdGxlPjwvaGVhZD48Ym9keT48cHJlPiIgLiAkbXNncyAuICI8L3ByZT48L2JvZHk+PC9odG1sPiIpOwogICAgICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5yZXBseVdlY2hhdE5ld3MoIueCueWHu+afpeeciyIsICLlpJrlqpLkvZPmtojmga8iLCAiIiwgV2VjaGF0SGFuZGxlcjo6V1hfSFRUUF9BRERSIC4gJGtleSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJG1zZyA9IGltcGxvZGUoIlxuXG4iLCAkbHMpOwogICAgICAgICAgICAkdXNlcl9pZCA9ICI8IVtDREFUQVsiIC4gJHRoaXMtPmRhdGFbInVzZXJfaWQiXSAuICJdXT4iOwogICAgICAgICAgICAkZnJvbSA9ICI8IVtDREFUQVsiLiR0aGlzLT5kYXRhWyJzZWxmX2lkIl0uIl1dPiI7CiAgICAgICAgICAgICR0eXBlID0gIjwhW0NEQVRBW3RleHRdXT4iOwogICAgICAgICAgICAkY29udGVudCA9ICI8IVtDREFUQVsiIC4gJG1zZyAuICJdXT4iOwogICAgICAgICAgICAkdGhpcy0+d3hfcmVwbHkgPSBbXTsKICAgICAgICAgICAgLyoqIEBub2luc3BlY3Rpb24gSHRtbERlcHJlY2F0ZWRUYWcgKi8KICAgICAgICAgICAgcmV0dXJuICJcbjx4bWw+PFRvVXNlck5hbWU+JHVzZXJfaWQ8L1RvVXNlck5hbWU+PEZyb21Vc2VyTmFtZT4kZnJvbTwvRnJvbVVzZXJOYW1lPjxDcmVhdGVUaW1lPiIgLiB0aW1lKCkgLiAiPC9DcmVhdGVUaW1lPjxNc2dUeXBlPiR0eXBlPC9Nc2dUeXBlPjxDb250ZW50PiRjb250ZW50PC9Db250ZW50PjwveG1sPiI7CiAgICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICog55So5Zu+5paH5L+h5oGv5pa55byP5Zue5aSN5b6u5L+h5raI5oGvCiAgICAgKiBAcGFyYW0gJHRpdGxlCiAgICAgKiBAcGFyYW0gJGRlc2NyaXB0aW9uCiAgICAgKiBAcGFyYW0gJHBpY191cmwKICAgICAqIEBwYXJhbSAkdXJsCiAgICAgKiBAcmV0dXJuIGJvb2wKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHJlcGx5V2VjaGF0TmV3cygkdGl0bGUsICRkZXNjcmlwdGlvbiwgJHBpY191cmwsICR1cmwpIHsKICAgICAgICAvLyR0aGlzLT5zZXRGdW5jdGlvbkNhbGxlZCgpOwogICAgICAgICR1c2VyX2lkID0gIjwhW0NEQVRBWyIgLiAkdGhpcy0+ZGF0YVsidXNlcl9pZCJdIC4gIl1dPiI7CiAgICAgICAgJGZyb20gPSAiPCFbQ0RBVEFbIiAuICR0aGlzLT5kYXRhWyJzZWxmX2lkIl0gLiAiXV0+IjsKICAgICAgICAkdHlwZSA9ICI8IVtDREFUQVtuZXdzXV0+IjsKICAgICAgICAvLyRjb250ZW50ID0gIjwhW0NEQVRBWyIgLiAkbWVkaWFfaWQgLiAiXV0+IjsKICAgICAgICAkdGl0bGUgPSAiPCFbQ0RBVEFbIiAuICR0aXRsZSAuICJdXT4iOwogICAgICAgICRkZXNjcmlwdGlvbiA9ICI8IVtDREFUQVsiIC4gJGRlc2NyaXB0aW9uIC4gIl1dPiI7CiAgICAgICAgJHVybCA9ICI8IVtDREFUQVsiIC4gJHVybCAuICJdXT4iOwogICAgICAgICRwaWNfdXJsID0gIjwhW0NEQVRBWyIgLiAkcGljX3VybCAuICJdXT4iOwogICAgICAgIHJldHVybiAiXG48eG1sPjxUb1VzZXJOYW1lPiR1c2VyX2lkPC9Ub1VzZXJOYW1lPjxGcm9tVXNlck5hbWU+JGZyb208L0Zyb21Vc2VyTmFtZT48Q3JlYXRlVGltZT4iIC4gdGltZSgpIC4gIjwvQ3JlYXRlVGltZT48TXNnVHlwZT4kdHlwZTwvTXNnVHlwZT48QXJ0aWNsZUNvdW50PjE8L0FydGljbGVDb3VudD48QXJ0aWNsZXM+PGl0ZW0+PFRpdGxlPiR0aXRsZTwvVGl0bGU+PERlc2NyaXB0aW9uPiRkZXNjcmlwdGlvbjwvRGVzY3JpcHRpb24+PFBpY1VybD4kcGljX3VybDwvUGljVXJsPjxVcmw+JHVybDwvVXJsPjwvaXRlbT48L0FydGljbGVzPjwveG1sPiI7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHByb2Nlc3NXWFJlc3BvbnNlKCRyYXcgPSAiIikgewogICAgICAgIGlmICgkdGhpcy0+d3hfcmVzcG9uc2UgPT09IG51bGwpIHJldHVybjsKICAgICAgICAvL2Vsc2UgQ29uc29sZTo6aW5mbygi6L+Y6KGM77yM5rKh5Lii77yM6L+Z5Liq55qEZmTmmK8iIC4gJHRoaXMtPnd4X3Jlc3BvbnNlLT5mZCk7CiAgICAgICAgaWYgKCRyYXcgPT0gIiIpIHsKICAgICAgICAgICAgaWYgKCgkcmVwbHkgPSAkdGhpcy0+Zm9ybWF0V1hSZXBseSgpKSAhPT0gIiIpIHsKICAgICAgICAgICAgICAgICR0aGlzLT53eF9yZXNwb25zZS0+ZW5kKCRyZXBseSk7CiAgICAgICAgICAgICAgICBaTUJ1Zjo6JGF0b21pY3NbIm91dF9jb3VudCJdLT5hZGQoMSk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+d3hfcmVzcG9uc2UtPmVuZCgic3VjY2VzcyIpOwogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJHRoaXMtPnd4X3Jlc3BvbnNlLT5lbmQoJHJhdyk7CiAgICAgICAgICAgIFpNQnVmOjokYXRvbWljc1sib3V0X2NvdW50Il0tPmFkZCgxKTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIF9fZGVzdHJ1Y3QoKSB7CiAgICAgICAgaWYgKCR0aGlzLT53eF9yZXBseSAhPSBbXSkgewogICAgICAgICAgICAkdGhpcy0+cHJvY2Vzc1dYUmVzcG9uc2UoKTsKICAgICAgICB9CiAgICB9Cn0=";

switch ($argv[1] ?? '') {
case '--with-wechat-patch':
build(true);
break;
case '--normal':
case '':
build();
break;
case '--help':
Expand Down
26 changes: 22 additions & 4 deletions bin/start
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,14 @@ require __DIR__ . '/../src/Scheduler/Scheduler.php';
Swoole\Coroutine::set([
'max_coroutine' => 30000,
]);
global $vendor_mode;
$vendor_mode = false;
if (mb_strpos(__DIR__, getcwd()) !== false && substr(str_replace(getcwd(), "", __DIR__), 0, 8) == "/vendor/") {
define("LOAD_MODE", 1); //composer项目模式
define("LOAD_MODE_COMPOSER_PATH", getcwd());
} else {
define("LOAD_MODE", 0); //正常模式
}

date_default_timezone_set("Asia/Shanghai");

Expand All @@ -24,13 +32,21 @@ switch ($argv[1] ?? '') {
}
});
break;
case 'phar-build':
array_shift($argv);
require_once 'phar-build';
break;
case 'systemd':
array_shift($argv);
require_once 'systemd';
break;
case '':
case 'framework':
case 'server':
if(!is_dir(__DIR__.'/../vendor/')){
if (!is_dir(__DIR__ . '/../vendor/') && LOAD_MODE == 0) {
echo "Warning: you have not update composer!\n";
exec("composer update", $out, $var);
if($var != 0) {
if ($var != 0) {
echo "You need to run \"composer update\" at root of zhamao-framework!\n";
die;
}
Expand All @@ -39,10 +55,12 @@ switch ($argv[1] ?? '') {
break;
case '--help':
case '-h':
echo "\nUsage: ".$argv[0]." [OPTION]\n";
echo "\nUsage: " . $argv[0] . " [OPTION]\n";
echo "\nzhamao-framework start script, provides several startup arguments.";
echo "\n\n -h, --help\t\tShow this help menu";
echo "\n framework, server\tstart main framework, this is default option\n\n";
echo "\n framework, server\tstart main framework, this is default option";
echo "\n phar-build\t\tbuild a new phar archive";
echo "\n systemd\t\tgenerate a new systemd \".service\" file to use\n\n";
break;
default:
echo "Unknown option \"{$argv[1]}\"!\n\"--help\" for more information\n";
Expand Down
11 changes: 8 additions & 3 deletions bin/systemd
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@
<?php /** @since 1.2 */
switch ($argv[1] ?? '') {
case '--generate':
generate();
case '':
generate($argv);
break;
case '--help':
case '-h':
Expand All @@ -14,13 +15,17 @@ switch ($argv[1] ?? '') {
break;
}

function generate() {
function generate($argv) {
$s = "[Unit]\nDescription=zhamao-framework Daemon\nAfter=rc-local.service\n\n[Service]\nType=simple";
$s .= "\nUser=" . exec("whoami");
$s .= "\nGroup=" . exec("groups | awk '{print $1}'");
$s .= "\nWorkingDirectory=" . getcwd();
$s .= "\nExecStart=" . getcwd() . "/bin/start server --disable-console-input";
if ($argv[0] == "systemd" && !file_exists(getcwd() . '/systemd'))
$s .= "\nExecStart=" . getcwd() . "/vendor/bin/start server --disable-console-input";
else
$s .= "\nExecStart=" . getcwd() . "/bin/start server --disable-console-input";
$s .= "\nRestart=always\n\n[Install]\nWantedBy=multi-user.target\n";
@mkdir(getcwd() . "/resources/");
file_put_contents(getcwd() . "/resources/zhamao.service", $s);
echo "File successfully generated. Path: " . getcwd() . "/resources/zhamao.service\n";
}
3 changes: 0 additions & 3 deletions bin/update-composer

This file was deleted.

12 changes: 5 additions & 7 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"description": "high-performance intelligent assistant",
"minimum-stability": "stable",
"license": "Apache-2.0",
"version": "1.4.1",
"version": "1.5",
"authors": [
{
"name": "whale",
Expand All @@ -14,6 +14,10 @@
"email": "[email protected]"
}
],
"prefer-stable": true,
"bin": [
"bin/start"
],
"require": {
"php": ">=7.2",
"swoole/ide-helper": "@dev",
Expand All @@ -25,11 +29,5 @@
"ext-ctype": "*",
"ext-pdo": "*",
"psy/psysh": "@stable"
},
"repositories": {
"packagist": {
"type": "composer",
"url": "https://mirrors.aliyun.com/composer/"
}
}
}
4 changes: 2 additions & 2 deletions config/global.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
$config['debug_mode'] = false;

/** 存放框架内文件数据的目录 */
$config['zm_data'] = WORKING_DIR.'/zm_data/';
$config['zm_data'] = realpath(__DIR__ . "/../").'/zm_data/';

/** 存放各个模块配置文件的目录 */
$config['config_dir'] = $config['zm_data'].'config/';
Expand Down Expand Up @@ -73,7 +73,7 @@
/** 静态文件访问 */
$config['static_file_server'] = [
'status' => false,
'document_root' => WORKING_DIR . '/resources/html',
'document_root' => realpath(__DIR__ . "/../") . '/resources/html',
'document_index' => [
'index.html'
]
Expand Down
Loading

0 comments on commit 59fde3d

Please sign in to comment.