Deprecated
: htmlspecialchars(): Passing null to parameter #1 ($string) of type string is deprecated in
/www/wwwroot/testblog.58heshihu.com/var/Widget/Archive.php
on line
1057
首页
关于
Search
1
给你10个市场数据调研报告的免费下载网站!以后竞品数据就从这里找!
182 阅读
2
php接口优化 使用curl_multi_init批量请求
144 阅读
3
《从菜鸟到大师之路 ElasticSearch 篇》
107 阅读
4
2024年备考系统架构设计师
104 阅读
5
PHP 文件I/O
92 阅读
php
thinkphp
laravel
工具
开源
mysql
数据结构
总结
思维逻辑
令人感动的创富故事
读书笔记
前端
vue
js
css
书籍
开源之旅
架构
消息队列
docker
教程
代码片段
redis
服务器
nginx
linux
科普
java
c
ElasticSearch
测试
php进阶
php基础
登录
Search
标签搜索
php函数
php语法
性能优化
安全
错误和异常处理
问题
vue
Composer
Session
缓存
框架
Swoole
api
并发
异步
正则表达式
php-fpm
mysql 索引
开发规范
协程
dafenqi
累计撰写
786
篇文章
累计收到
28
条评论
首页
栏目
php
thinkphp
laravel
工具
开源
mysql
数据结构
总结
思维逻辑
令人感动的创富故事
读书笔记
前端
vue
js
css
书籍
开源之旅
架构
消息队列
docker
教程
代码片段
副业
redis
服务器
nginx
linux
科普
java
c
ElasticSearch
测试
php进阶
php基础
页面
关于
搜索到
10
篇与
的结果
2024-01-02
PHP框架开发的全面指南:掌握各种功能的实现方法
PHP框架开发的全面指南:掌握各种功能的实现方法随着互联网的快速发展,PHP作为一种广泛应用于Web开发的编程语言,得到了广大开发者的认可和使用。为了提高开发效率和代码质量,PHP框架应运而生。PHP框架为开发者提供了一种规范化的开发模式和一系列可复用的功能模块,极大地简化了开发过程。本文将介绍PHP框架开发的全面指南,帮助开发者掌握各种功能的实现方法,从而更好地驾驭PHP框架,提高开发效率和代码质量。一、了解PHP框架的基本原理和架构了解PHP框架的基本原理和架构是掌握各种功能的实现方法的基础。PHP框架基于MVC架构模式,将应用程序分为模型、视图和控制器三个部分。模型负责数据处理和数据库操作,视图负责页面展示,控制器负责处理用户请求和调度其他模块。二、掌握路由和URL处理的方法路由和URL处理是PHP框架中重要的功能之一。路由指的是将HTTP请求映射到相应的控制器和方法上。URL处理则是指对URL进行解析和重写,实现友好的URL结构。常见的路由处理方法有正则表达式匹配、基于规则的路由和基于注解的路由。URL处理可以通过.htaccess文件或服务器配置文件来实现,也可以通过框架的路由组件来实现。三、实现数据库操作数据库操作是PHP框架中常见的功能之一。开发者需要掌握数据库连接、查询构建、事务处理等方法。常用的数据库操作方法有原生SQL语句操作、ORM(对象关系映射)和查询构造器等。ORM和查询构造器可以让开发者以面向对象的方式进行数据库操作,提高代码的可读性和可维护性。四、实现认证和授权功能认证和授权是PHP框架中常见的安全功能。认证指的是验证用户身份,授权指的是控制用户权限。常见的认证方法有基于Session和Token的认证,常见的授权方法有基于角色和权限的授权。开发者可以通过框架提供的认证和授权组件或者自行实现这些功能。五、使用模板引擎实现页面渲染模板引擎是PHP框架中常用的功能之一。使用模板引擎可以实现页面布局和数据展示的分离,提高页面的可维护性和重用性。常见的模板引擎有Smarty、Twig和Blade等。六、实现缓存机制缓存机制是PHP框架中的重要功能之一。通过缓存机制可以提高系统的响应速度和性能。常见的缓存方法有文件缓存、数据库缓存、内存缓存和分布式缓存等。开发者可以通过框架提供的缓存组件或者自行实现这些功能。七、优化和调试技巧在使用PHP框架进行开发的过程中,优化和调试是必不可少的。开发者可以通过监控性能、分析日志、使用调试工具等方法来优化和调试应用程序。本文介绍了PHP框架开发的全面指南,包括了了解PHP框架的基本原理和架构、掌握路由和URL处理的方法、实现数据库操作、实现认证和授权功能、使用模板引擎实现页面渲染、实现缓存机制以及优化和调试技巧等。通过掌握这些内容,开发者能够更好地驾驭PHP框架,提高开发效率和代码质量。希望本文对于PHP框架开发者有所帮助。
2024年01月02日
12 阅读
0 评论
0 点赞
2024-01-01
推荐几个好用的PHP框架开发的开源项目
推荐几个好用的PHP框架开发的开源项目CRMEB开源商城系统CRMEB开源商城系统是一款全开源可商用的系统,前后端分离开发,全部100%开源,在小程序、公众号、H5、APP、PC端都能用,使用方便,二开方便!安装使用也很简单!使用文档、接口文档、数据字典、二开文档、视频教程,各种资料应有尽有,就算你是技术小白,也能轻松上手!欢迎大家来体验、来提建议,来一起让CRMEB开源商城系统更强大,让更多开发者受益!虽然是开源,但我们该有的功能全都有!拼团、秒杀、优惠券、抽奖、积分、直播、分销、页面DIY... 常用商城系统功能,都是全开源,直接用!FastAdminFastAdmin是一款基于ThinkPHP+Bootstrap的极速后台开发框架。主要功能基于Auth验证的权限管理系统支持无限级父子级权限继承,父级的管理员可任意增删改子级管理员及权限设置支持单管理员多角色支持管理子级数据或个人数据强大的一键生成功能一键生成CRUD,包括控制器、模型、视图、JS、语言包、菜单、回收站等一键压缩打包JS和CSS文件,一键CDN静态资源部署一键生成控制器菜单和规则一键生成API接口文档完善的前端功能组件开发基于AdminLTE二次开发基于Bootstrap开发,自适应手机、平板、PC基于RequireJS进行JS模块管理,按需加载基于Less进行样式开发强大的插件扩展功能,在线安装卸载升级插件通用的会员模块和API模块共用同一账号体系的Web端会员中心权限验证和API接口会员权限验证二级域名部署支持,同时域名支持绑定到应用插件多语言支持,服务端及客户端支持支持大文件分片上传、剪切板粘贴上传、拖拽上传,进度条显示,图片上传前压缩支持表格固定列、固定表头、跨页选择、Excel导出、模板渲染等功能强大的第三方应用模块支持(CMS、博客、知识付费问答、在线投票系统、B2C商城、B2B2C商城)支持CMS、博客、知识付费问答无缝整合Xunsearch全文搜索第三方小程序支持(CMS小程序、预订小程序、问答小程序、点餐小程序、B2C小程序、B2B2C小程序、博客小程序)整合第三方短信接口(阿里云、腾讯云短信)无缝整合第三方云存储(七牛云、阿里云OSS、又拍云)功能,支持云储存分片上传第三方富文本编辑器支持(Summernote、百度编辑器)第三方登录(QQ、微信、微博)整合第三方支付(微信、支付宝)无缝整合,微信支持PC端扫码支付丰富的插件应用市场BuildAdminBuildAdmin基于 Vue3.3 + ThinkPHP8 + TypeScript + Vite + Pinia + Element Plus等流行技术栈的后台管理系统,自适应多端、可视化CRUD代码生成、自带WEB终端、同时提供Web、WebNuxt、Server端、内置全局数据回收站和字段级数据修改保护、自动注册路由、无限子级权限管理等,无需授权即可免费商用,希望能帮助大家实现快速开发。主要特性CRUD代码生成: 图形化拖拽生成后台增删改查代码,自动创建数据表;大气且实用的表格,多达24种表单组件支持,行拖拽排序,受权限控制的编辑和删除等等,并支持关联表,可为您节省大量开发时间。内置WEB终端: 我们内置了一个WEB终端以实现一些理想中的功能,比如:虽然是基于vue3的系统,但你在安装本系统时,并不需要手动执行npm install和npm build命令。且后续本终端将为您提供更多方便、快捷的服务。流行且稳定的技术栈: 除了基于ThinkPHP8前后端分离架构外,我们的Vue3使用了Setup、状态管理使用Pinia、并使用了TypeScript、Vite等可以为你的知识面添砖加瓦的技术栈。模块市场: 一键安装数据导出、短信发送、云存储、单页或是纯前端技术栈的学习案例项目等等,随时随地为系统添砖加瓦,系统能够自动维护package.json和composer.json并通过内置终端自动完成模块所需依赖的安装,若您愿意成为模块开发者,模块可以:覆盖系统任何文件或为系统新增文件,您的模块经由官方审核即可上架。前后端分离: web文件夹内包含:干净(不含后端代码)、完整(所有前端代码文件均在此内) 的前端代码文件,对前端开发者友好,作为纯前端开发者,您可以将BAdmin当做学习与资源的社群,本系统可为您准备好案例和模板等所需要的环境,而您只需专注于学习或工作,不需要会任何后端代码!按需加载: 前端的页面组件和语言包均是在使用到它们时,才从网络异步加载,服务端则是基于TP8和PSR规范天生拥有真正的按需加载能力,所以,您无需考虑我并不需要多语言、我并不需要某个后台功能这类的问题,不需要不使用或隐藏即可。数据回收与反悔: 内置全局数据回收站,并且提供字段级数据修改记录和修改对比,随时回滚和还原,安全且无感。高颜值: 提供三种布局模式,其中默认布局使用无边框设计风格,它并没有强行填满屏幕的每一个缝然后使用边框线进行分隔,所有的功能版块,都像是悬浮在屏幕上的,同时又将屏幕空间及其合理的利用了。权限验证: 可视化的管理权限,然后根据权限动态的注册路由、菜单、页面、按钮(权限节点)、支持无限父子级权限分组、前后端搭配鉴权,自由分派页面和按钮权限。未来可期: 我们正在持续维护系统,并着手开发更多基础设施模块,按需一键安装,甚至提供开箱即用的各行业完整应用。一举多得: 后台自适应PC、平板、手机等多种场景的支持,轻松应对各种需求。其他杂项: 角色组/管理员/管理员日志、 会员/会员组/会员余额、积分日志、系统配置/控制台/附件管理/个人资料管理等等、更多特性等你探索...SWIFTADMINSWIFTADMIN 是一款基于 webman + Layui 开发的 http 服务框架,提供了一个简单易用的(权限)后台管理系统,拥有极简的封装扩展,特别适合中小企业和个人站长用于开发 web 站点或者 http 接口。支持路由、中间件、 多应用、 自定义进程、无需更改直接兼容现有 composer 项目组件等诸多特性。具有学习成本低、简单易用、超高性能、超高稳定性等特点。为什么选择 SWIFTADMIN?如果你熟悉ThinkPHP/Laravel/Yii2等框架,那么你可以很快上手 SWIFTADMIN,因为 SWIFTADMIN 是完全复用的这些框架的composer包。一样的代码写法,性能却可以提升10 倍以上。运行在PHPCLI模式之下,他不是类似于SWOOLE异步协程的工作模式,所以新手朋友不需要担心变量污染的问题,也不需要担心第三方扩展包异步协程的问题,只需要专注于业务开发即可。软件功能用户管理 用户是系统操作者,该功能主要完成系统用户配置。公司管理 设置公司常用信息,前端标签调用部门管理 配置系统组织机构(部门、小组),树结构展现支持数据权限。岗位管理 配置系统用户所属担任职务。菜单管理 配置系统菜单,操作权限,按钮、栏目等权限标识等。角色管理 角色菜单权限分配、设置角色按机构进行数据范围权限划分。插件管理 可开发定制属于自己的插件,可安装升级社区插件!!!数据字典 对系统中经常使用的一些较为固定的数据进行维护。操作日志 用户后台操作日志,全局异常、SQL注入等记录软件优势开箱即用 分钟快速安装,安装后即可进入开发无需复杂配置。精美样式 针对Layui2.x管理端开发独立ant Design精美样式。方便快捷 没用VUE框架,免编译,基于原生jQuery并封装统一入口。菜单接入 接口化菜单接入,可将应用轻松接入任意菜单模块中,无需后台配置。表单构建 基于Layui2.x开发的可视化表单设计器,可自定义表单控件,极大提高开发效率。代码生成 轻松一键CURD,自动生成代码,自动生成表单,自动生成接口,自动生成菜单,自动生成权限。插件开发 支持自定义插件开发,可定制自己的插件,并支持一键打包/升级/测试。性能强悍 底层WebMan-PHPCli常驻内存模式,性能是TP/Laravel的10倍以上。
2024年01月01日
14 阅读
0 评论
0 点赞
2023-12-31
热门的10种PHP框架
热门的10种PHP框架LaravelLaravel仍然是PHP框架领域的主导力量。它以其优雅的语法、强大的功能和活跃的社区而闻名,是构建可扩展、高性能Web应用程序的首选。它提供了身份验证、数据库迁移和富有表现力的ORM等功能。SymfonySymfony以其模块化和灵活性而闻名。它提供了广泛的可重用组件和结构良好的框架,非常适合大规模应用程序。Symfony的稳定性和长期支持使其成为企业项目的可靠选择。CodeIgniterCodeIgniter是一个轻量级且用户友好的PHP框架,非常适合快速开发。它占用空间小,学习曲线简单,并且针对各种任务提供丰富的库集,使其成为中小型项目的绝佳选择。Zend Framework(Laminas)Zend Framework(现在称为Laminas)提供了一个组合包,可以单独使用或组合使用来构建功能强大的应用程序。它适用于需要高级定制的复杂企业级项目。YiiYii是一个高性能PHP框架,专为开发现代Web应用程序而设计。它拥有强大的缓存系统、强大的扩展库以及用于数据库管理的ActiveRecord等功能。PhalconPhalcon是一个独特的PHP框架,因为它是用C和C++编写的,以增强性能。它以其速度和最少的资源消耗而闻名,使其成为高流量应用程序的绝佳选择。CakePHPCakePHP是一个成熟的框架,注重约定优于配置。它提供了一组强大的功能,包括内置验证、身份验证和脚手架,简化了开发过程。SlimSlim是一个微框架,设计用于构建API和小型Web应用程序。它简约、快速且易于学习,使其成为轻量级项目的理想选择。Laminas(Zend Expressive)Laminas以前称为Zend Expressive,是一个专注于构建API和中间件应用程序的微框架。它可以灵活地选择项目所需的组件。Phalcon MicroPhalcon Micro是Phalcon框架的精简版本,专为微服务和轻量级应用程序而设计。它继承了Phalcon的速度和性能优势。选择正确的PHP框架对于2023年的Web开发项目的成功至关重要。每个框架都有其独特的优势和用法,可满足不同的项目需求。在做出选择时,请考虑项目规模、复杂性、可扩展性和开发团队的专业知识等因素。
2023年12月31日
8 阅读
0 评论
0 点赞
2023-08-12
Hyperf 3.0
Hyperf 3.0回顾在过去的一年半时间里,Hyperf 2.2 共发布了 35 个小版本,使 Hyperf 达到了一个前所未有的高度,这里也获得了一些不错的数据反馈。Hyperf 在 GitHub 和 Gitee 上的关注度也得到了显著提升,分别获得了 4.9k 和 791 个 star,整体关注度增长也很稳定。Hyperf 框架的安装量也达到了 90万次,每天都有约 1300次的安装,这也表明了 Hyperf 已经广泛应用于相关行业中并支撑了大量的系统运行。Hyperf 组织下的有效 repo 更是达到了约 140个(去除掉 Archive 项目后),维护工作量空前巨大,但迭代仍然高频。感谢 Hyperf 团队全体成员的辛勤以及贡献,同时也感谢所有的 PR 贡献者,没有你们的参与也就没有今天的 Hyperf。Thanks ALL ContributorsHyperf 3.0 新时代Hyperf 3.0 带来了很多非常有意思的新能力,其中一些新能力不乏是 PHP 领域里面前所未有的,当然这些新能力也脱离不了其他开源社区的积极发展,包括但不限于 PHP、Swoole、Swow、PHPMicro、DTM、Seata 等开源社区,也衷心希望大家在闲暇时间可以为这些开源社区也贡献出自己的一份力,搭上一砖一瓦,共建更加美好的未来。原生注解 (Attribute)随着 PHP 8.1、8.2 的发布,给 PHP 带来了很多新的特性,其中与 Hyperf 最为相关的就是 PHP 的原生注解(Attribute) 了,Hyperf 3.0 也放弃了过往采用的基于注释解析的注解功能实现,转而采用 PHP 的原生注解,当然对应依赖的 PHP 版本,也将调整为最低要求 PHP 8.0。我们以一个最简单的 Controller 案例来呈现新的原生注解的使用:<?phpdeclare(strict_types=1);namespace App\Controller;use Hyperf\HttpServer\Contract\RequestInterface;use Hyperf\HttpServer\Annotation\Controller;use Hyperf\HttpServer\Annotation\RequestMapping;[Controller]class IndexController{// Hyperf 会自动为此方法生成一个 /index/index 的路由,允许通过 GET 或 POST 方式请求 #[RequestMapping(path: "index", methods: "get,post")] public function index(RequestInterface $request) { // 从请求中获得 id 参数 $id = $request->input('id', 1); return (string)$id; }}同时随着原生注解的应用,在 3.0 中也能够支持在同一个位置重复应用同一个注解了,比如过往在一个 Controller Action 想要应用多个 Middleware 时,需要通过 @Middlewares 注解包含多个 @Middleware 注解实现应用,而在 3.0 则可直接书写多个 @Middleware 注解实现该应用。同时在 3.0 中,注解也可以应用在方法的参数上,以实现一些针对方法参数定义、参数解析等功能。从 注释注解 调整为 原生注解,也无需担忧过往项目的迁移改造工作量,Hyperf 也提供了对应的工具一键自动转换,只需要在 2.2 时引入 hyperf/code-generator 组件,并执行 php bin/hyperf.php code:generate -D app 命令,即可将 app 文件夹内的注释注解自动转为原生注解,轻松省力~分布式事务在过去的一年里,Hyperf 团队也为 PHP 领域孵化了两个前所未有的分布式事务组件并贡献到对应的开源社区,对应 DTM (首个基于 Go 语言实现的流行分布式事务管理器) 与 Seata (由阿里巴巴开源的流行分布式事务管理器) 两款主流的开源分布式事务管理器,分别是 dtm-php/dtm-client 和 seata/seata-php ,其中 dtm-php 是实现了 dtm 完整功能的分布式事务客户端,已支持 TCC模式、Saga、XA、二阶段消息模式的分布式事务模式,并分别实现了与 DTM Server 以 HTTP 协议 或 gRPC 协议 通讯,该客户端可安全运行于 PHP-FPM 和 Swoole 协程环境中,更是对 Hyperf 框架做了更加易用的功能支持,可应用于生产环境中,而 seata-php 仍在开发迭代中,尚未能用于生产环境,也希望能有更多人参与进来共同迭代。我们也以一个简单的例子来说明如何在 Hyperf 中实现一个 TCC 分布式事务的调用,其它分布式事务模式可查阅 dtm-php repo 的 README 文件,或 Hyperf 3.0 文档关于分布式事务一章。<?phpnamespace App\Controller;use DtmClient\TCC;use DtmClient\TransContext;use Hyperf\Di\Annotation\Inject;use Hyperf\HttpServer\Annotation\Controller;use Hyperf\HttpServer\Annotation\GetMapping;use Throwable;[Controller(prefix: '/tcc')]class TccController{protected string $serviceUri = 'http://127.0.0.1:9501'; #[Inject] protected TCC $tcc; #[GetMapping(path: 'successCase')] public function successCase() { try { $this->tcc->globalTransaction(function (TCC $tcc) { // 创建子事务 A 的调用数据 $tcc->callBranch( // 调用 Try 方法的参数 ['amount' => 30], // Try 方法的 URL $this->serviceUri . '/tcc/transA/try', // Confirm 方法的 URL $this->serviceUri . '/tcc/transA/confirm', // Cancel 方法的 URL $this->serviceUri . '/tcc/transA/cancel' ); // 创建子事务 B 的调用数据,以此类推 $tcc->callBranch( ['amount' => 30], $this->serviceUri . '/tcc/transB/try', $this->serviceUri . '/tcc/transB/confirm', $this->serviceUri . '/tcc/transB/cancel' ); }); } catch (Throwable $e) { var_dump($e->getMessage(), $e->getTraceAsString()); } // 通过 TransContext::getGid() 获得 全局事务ID 并返回 return TransContext::getGid(); } }至于其它事务模式,如 Saga、XA、二阶段消息模式等,可以具体查阅 dtm-php/dtm-client 仓库的 Readme 文件或 Hyperf 3.0 的相关文档。Swow 网络引擎实际上在 Hyperf 2.2 中,就已经支持了 Swow 网络引擎的运行,随着 Swow 1.0 正式版的发布,在 Hyperf 3.0 中,我们也把 Swow 的应用提高到了一个更高的高度,Swow 实现了一套有史以来最完整的 PHP 协程模型,它全面释放了 PHP 的真正实力,使得开发者可以做到以往难以想象的事情,对比 Swoole 它具备更好的兼容性、可调试性、可编程性,它甚至能使 Hyperf 运行于原生 Windows 环境下而无需借助 WSL 或 Docker,同时也提供了 SDB 和 Watchdog 工具对协程运行进行调试和监控,极大的提升了 Hyperf 的可调试性。我们提供了一个全新的 Skeleton 骨架项目用于快速创建一个基于 Swow 网络引擎的 Hyperf 应用,以下是一个简单的通过 Composer 创建应用的流程:composer create-project hyperf/swow-skeleton:dev-master 创建后,确保您的 PHP 环境已经安装好了 Swow 扩展,便可直接通过 php bin/hyperf.php start 命令启动服务,整体使用与原来无异,Hyperf 底层已做好了适配。在 Windows 环境中也只需在 CMD 或者 Poweshell 中运行即可哦~SDB 协程调试器SDB 是一款使用 PHP 语言编写的协程调试器工具,使用上类似于 GDB,它具有以下的几个优点:使用简单,只需要一行代码即可开启;无需端口,可直接运行在 TTY 上;零成本,可在生产环境使用,不影响性能;功能强大,深度定制,量身打造类微型操作系统;通过 SDB,您可以对运行中的 Hyperf 应用进行交互,以实现查看当前所有协程状态、窥视协程、进入指定协程、查看调用栈、打断点、单步调试、查看及修改变量调试、扫描僵尸协程、Kill 协程等操作,真正意义上的将 PHP 协程带到了工程化的实用阶段。WatchdogWatchdog 为 PHP 提供了 CPU 调度能力,其核心原理是 Watchdog 线程会定期检查其它线程中协程的活跃度情况,若发现工作线程中的协程不再活跃,则通过 ZendVM 的中断机制对其进行状态确认,若 VM 中断失败,则表明工作线程陷入了系统调用阻塞,触发告警;若 VM 中断成功,则表明工作线程陷入了 CPU 密集运算或死循环,则立即触发用户设定的调度规则进行调度。通过 Watchdog 可以实现 可编程的协程调度机制,可以非常方便的解决过往头疼的 CPU 饥饿 问题,以下是一些用法的演示:// 运行超过 1ms 就让出控制权\Swow\WatchDog::run(1 1000 1000);// 运行超过 1ms 就让出 10ms,调度失败并超过 5ms 时视为系统调用阻塞\Swow\WatchDog::run(1 1000 1000, 5 1000 1000, 10);// 可编程方式,函数会在程序阻塞 100ms 后触发$alertCountMap = new WeakMap();\Swow\WatchDog::run(quantum: 100 1000 1000, alerter: static function () use ($alertCountMap): void {$coroutine = Coroutine::getCurrent(); $alertCount = ($alertCountMap[$coroutine] ??= 0) + 1; $alertCountMap[$coroutine] = $alertCount; echo 'CPU starvation occurred, suspend this coroutine...' . PHP_EOL; sleep(0); if ($alertCount > 5) { echo 'Kill the bad guy' . PHP_EOL; $coroutine->kill(); }});更多用法关于 SDB 和 WatchDog 以及更多用法目前文档可能尚未完善,我们接下来也会编写多篇文章来阐述用法,也会尽快完善相关文档~BoxBox 是一个致力于帮助提升 PHP 应用程序的编程体验的工具,尤其有助于 Hyperf 应用,可以用于管理 PHP 环境和相关依赖,同时提供将 PHP 应用程序打包为二进制程序的能力,还提供反向代理服务来管理和部署 Swoole/Swow 服务。这些能力也是前所未有的,特别是将 Hyperf 或 PHP 应用打包为二进制程序的能力,打包好的程序,可以不依赖系统的 PHP 环境单独运行,以达到类似于 Go 语言的打包能力,这些能力也得益于 phpmicro 的发展,而 Box 则是站在巨人的肩膀上,将这些能力以更加简单易用的方式提供给大家使用~以下是一个通过下载 Box 到创建一个 Hyperf 应用,并运行的简单案例:安装 Box// Macwget https://github.com/hyperf/box/releases/download/v0.5.5/box_x86_64_macos -O boxsudo mv ./box /usr/local/bin/boxsudo chmod 755 /usr/local/bin/box// 确保 /usr/local/bin/box 在你的 $PATH 环境中,或者将 box 放到你想要的任意 $PATH 路径中// Linux x86_64wget https://github.com/hyperf/box/releases/download/v0.5.5/box_x86_64_linux -O boxsudo mv ./box /usr/local/bin/boxsudo chmod 755 /usr/local/bin/box// 确保 /usr/local/bin/box 在你的 $PATH 环境中,或者将 box 放到你想要的任意 $PATH 路径中// Windowscurl -o box.exe https://github.com/hyperf/box/releases/download/v0.5.5/box_x64_windows.exe// 将 box.exe 放到你想要的任意 Path 环境变量路径中,同时 Windows 版本在执行时需要在命令行中使用 box.exe 而不是 box初始化 Github Access TokenBox 需要一个 Github 访问令牌来请求 Github API,以便于从 GitHub Actions 的 Artifacts 中检索包的版本。创建 Github Access Token,workflow 范围需要勾选;运行 box config set github.access-token 命令来设置您的 token;我们将在 v0.6 版本让使用 Box 前无需设置 Github Access Token,以提供更加简便的使用体验,请期待~通过 Box 初始化 PHP 环境并启动 Hyperf// 通过 box 安装 PHP 8.1,此安装不会影响系统原来自身安装的 PHPbox get php@8.1// 通过 box 安装 composerbox get composer// 通过 box composer 创建 hyperf 应用,可指定 dev-master 分支以防止 packagist 代理数据落后的问题box composer create-project hyperf/swow-skeleton:dev-master// 通过 box 启动 hyperfbox hyperf start至此一个完整的安装和运行流程已完成,我们可以发现过往复杂的环境部署环节,已经简化为了区区几个命令,通过 && 连接符甚至可以组成一行命令足以。通过 Box 打包 Hyperf 应用为二进制程序这个神奇的能力,在操作上也被简化得匪夷所思,只需预先执行 box build-prepare 命令提前下载好相关依赖,这个命令只需执行一次即可,后续即可通过 box build 命令对当前所在文件夹的 Hyperf 应用进行打包动作。打包好后,当前文件夹会出现一个名为 hyperf 的二进制文件,后续只需要通过 hyperf start 命令即可启动该 Hyperf 应用。Box 自身就是一个基于 Box 打包出来的 Hyperf 应用,大家也可以通过了解 Box 项目本身,来了解该能力的使用。Box Kernel 切换默认情况下,Box 由 Swow Kernel 提供支持,但是我们也提供了 Swoole Kernel,您可以通过 box config set kernel swoole 来切换为 Swoole Kernel,但是需要注意的是,Swoole Kernel 仅支持 PHP 8.1 版本,且不支持构建二进制程序功能和 Windows 系统环境。// 设置为 Swow Kernel [默认]box config set kernel swow// 设置为 Swoole Kernel (不支持 Windows)box config set kernel swooleBox 的更多能力Box 还有更多有意思的使用方法和工具组合,可以通过下面的部分的命令清单快速一览命令box get pkg@version从远程安装包,pkg是包名,version是包的版本,box get pkg表示安装最新版本的 pkg,例如, 运行 box get php@8.1 安装 PHP 8.1, 运行 box get composer 安装最新的 composer binbox build-prepare 为 build 和 build-self 命令做好相关环境的准备box build-self 构建 box bin 本身box build 将 Hyperf 应用程序构建成二进制文件box self-update 将 box bin 更新至最新版本box config set-php-version 设置 box 的当前 PHP 版本,可用值:8.0 | 8.1box config get-php-version 获取 box 的当前设置的 PHP 版本box reverse-proxy -u <upsteamHost:upstreamPort> 启动一个反向代理 HTTP 服务器,用于将 HTTP 请求转发到指定的多个上游服务器box php 通过当前 box 的 PHP 版本运行任何 PHP 命令box composer 通过当前 box 的 PHP 版本运行任何 Composer 命令box php-cs-fixer 通过当前 box 的 PHP 版本运行任何 php-cs-fixer 命令box cs-fix 通过当前 box 的 PHP 版本运行 php-cs-fixer fix 命令box phpstan 通过当前 box 的 PHP 版本运行任何 phpstan 命令box pint 通过当前 box 的 PHP 版本运行任何 pint 命令更多优化Hyperf 3.0 仍做了大量的优化和调整,具体可以阅读 Hyperf 主仓库中的 CHANGELOG-3.0.md 文件。同时我们也为大家准备了一份从 2.2 升级至 3.0 的指南,具体可查阅 Hyperf 官方文档 - 3.0 升级指南 一章。相关链接Hyperf 的详细介绍:点击查看Hyperf 的下载地址:点击下载
2023年08月12日
15 阅读
0 评论
0 点赞
2023-08-09
利用 Composer 一步一步构建自己的 PHP 框架
PHP 命名空间 解惑利用 Composer 一步一步构建自己的 PHP 框架(一)——基础准备利用 Composer 一步一步构建自己的 PHP 框架(二)——构建路由利用 Composer 一步一步构建自己的 PHP 框架(三)——设计 MVC利用 Composer 一步一步构建自己的 PHP 框架(四)——使用 ORM利用 Composer 完善自己的 PHP 框架(一)——视图装载利用 Composer 完善自己的 PHP 框架(二)——发送邮件【完结】利用 Composer 完善自己的 PHP 框架(三)——Redis 缓存
2023年08月09日
10 阅读
0 评论
0 点赞
1
2