9个杀手级的PHP项目,快来收藏使用!
时间:2022-05-05 [网络编程]作者:fabuyuan 浏览:5 次
1、php-ai/php-ml,一个高级的PHP的机器学习库
php-ml是一个使用PHP实现的机器学习库,包含算法、神经网络、交叉验证、预处理、特征提取等人工智能领域中常用的功能方案。
网还提供了众多的案例,比如:
检测语言分类
MNIST 识别手写字体(标准的人工智能入门项目)
垃圾邮件过滤
文章分类
预测葡萄酒的质量
php-ml有一个完善的文档,并且有丰富的博客文章。但是这已经是人工智能的领域了,你的知识结构可能一时半会还利用不了。
简单地用法如下:
require_once __DIR__ . '/vendor/autoload.php'; use Phpml\Classification\KNearestNeighbors; $samples = [[1, 3], [1, 4], [2, 4], [3, 1], [4, 1], [4, 2]]; $labels = ['a', 'a', 'a', 'b', 'b', 'b']; $classifier = new KNearestNeighbors(); $classifier->train($samples, $labels); $classifier->predict([3, 2]); // return 'b'
2、rindow/rindow-neuralnetworks,一个高级的PHP的神经网络库
这也是一个人工智能项目,是一个高级的PHP的神经网络库,可以使用PHP实现一个强大的机器学习项目。
它有以下特点:
可以轻易地实现DNN、CNN、RNN 和 Attention 机器学习模型
和Python的Keras 很相似,可以利用相关经验
提供了机器学习中的机器视觉和自然语言的处理
处理性能是tensorflow CPU 的两倍
无需专门的运行环境,可以在任何电脑环境运行
附带有趣的示例程序
并且有相关的计算扩展,用于提高性能。还有对于GPU的扩展,可以利用GPU的计算能力,进一步提高性能,不过目前这一点还在测试阶段。
3、rubix/ml,一个高级的PHP的机器学习和深度学习库
是的, 这里又介绍了一个PHP的人工智能库。
他有这样几个特点:
对开发人员很友好的接口方法调用
40多种监督或非监督学习方法
支持 ETL、预处理和交叉验证
与上面两个相比相比,它提供了最多的教程和示例项目 教程和示例项目 ,其中比较有趣的有离婚预测、DOTA2胜率预测等, 并且提供了电报群的交流渠道。
4、nlp-tools/nlp-tools,一个供初学者使用的半高级的自然语言处理库
这是一个专门用于处理人工智能中自然语言处理领域的库,他提供的方法相比之前几个会更低底层一些,但使用起来仍然很优雅。
它内置了多种分类模型,类聚方法,分词器,数据集等等几乎这一领取所需的所有工具和数据。
与之前介绍的几个项目相比,它是专门用来处理自然语言这一领域的,并且对初学者十分友好。有丰富的文档,内置了齐全的工具和数据。
这里演示一下分词效果:
include('vendor/autoload.php'); use NlpTools\Tokenizers\WhitespaceAndPunctuationTokenizer; $text = "Please allow me to introduce myself I'm a man of wealth and taste"; $tok = new WhitespaceAndPunctuationTokenizer(); print_r($tok->tokenize($text)); // Array // ( // [0] => Please // [1] => allow // [2] => me // [3] => to // [4] => introduce // [5] => myself // [6] => I // [7] => ' // [8] => m // [9] => a // [10] => man // [11] => of // [12] => wealth // [13] => and // [14] => taste // )
5、workerman/gateway-worker,一个分布式的长链接服务框架
GatewayWorker基于Workerman开发的一个项目框架,用于快速开发TCP长连接应用,例如app推送服务端、即时IM服务端、游戏服务端、物联网、智能家居等等。
与其他的此类方案相比,它提供了这样几个无可比拟的优点:
内置进程守护,通过简单的命令行即可稳定运行,无需自己去实现后台运行或进程守护
内置分布式设计,可以在不需要修改任何代码的情况下,实现分布式部署
完善的长链接操作,包括给连接绑定UID、给连接绑定分组、维护SESSION等
提供标准的系统内推送消息的用法,提供了一个client,可以随时向gateway网络中发送消息
gatewayworker几乎解决了长链接开发中的所有痛点,非常好用。要注意的是,他是为长链接而设计的框架,如果是短连接(UDP)则需要其他方案。
它的启动方式如下,无需更多操作,健壮地完成进程守护、平滑重启。
1)启动
以debug(调试)方式启动
php start.php start
以daemon(守护进程)方式启动
php start.php start -d
2)停止
php start.php stop
3)重启
php start.php restart
4)平滑重启
php start.php reload
5)查看状态
php start.php status
6、robmorgan/phinx,一个数据库迁移工具
什么是数据库迁移工具呢,你可以先这样理解,就是一个数据库导入工具。
一般的如果我们需要导入数据库,需要先去之前的数据库导出sql文件,然后到另一个站点上导入sql文件。似乎这是天经地义的,没什么更好的方法,再好一点也就是做一个一键安装脚本。
其实有更好的方案,就是用数据库迁移工具phinx,在安装数据库时,不需要导出和导入sql文件,而是直接使用phinx提供的方法,设计好表结构,然后通过phinx的命令导入。
这样有很多好处:
更优雅的安装方式,与系统代码一起管理,无需导出sql文件
支持数据库升级降级,可以跟随系统升级,自动对比数据表变化,不用担心数据丢失
支持多款数据库,在phinx设计的表结构可以直接安装到Mysql、PostgreSQL、SQLite、SQL Server
phinx绝对是现代的程序安装解决方案,你值得投入精力去使用它。
它的基本的用法像这样:
<?php use Phinx\Migration\AbstractMigration; class CreateUserLoginsTable extends AbstractMigration { public function change() { // 创建表结构 $table = $this->table('user_logins'); $table->addColumn('user_id', 'integer') ->addColumn('created', 'datetime') ->create(); } }
7、league/flysystem,一个PHP的万能的文件存储操作库
flysystem是一个PHP的文件操作库,比如文件的读取、写入、目录列表等等操作。与众不同的是,他是“万能的”。其实说它是万能的有些夸张了,但是他网支持了以下系统:
本地存储
FTP存储
SFTP存储
内存存储
亚马逊云存储
谷歌云存储
WebDAV存储
在社区生态中,还支持我们经常接触的一些系统:
阿里云存储
七牛云存储
Dropbox存储
腾讯云存储
华为云存储
等等,如果你需要,也可以自定义驱动。
就像下面的代码一样,对文件的操作是通用兼容的,如果需要切换存储系统,换一个驱动就可以了。
// 设置驱动 $adapter = new League\Flysystem\Local\LocalFilesystemAdapter($rootPath); $filesystem = new League\Flysystem\Filesystem($adapter); // 操作文件、目录 $filesystem->write($path, $contents); $filesystem->read($path); $filesystem->delete($path); $filesystem->listContents($path, $recursive); $filesystem->fileExists($path); $filesystem->has($path); $filesystem->lastModified($path); .....
8、PHP-CPP,一个C++的PHP扩展开发框架
相比介绍的前几个项目,PHP-CPP并不是一个PHP的扩展或库,它是一个C++的框架,用来开发PHP扩展。
众所周知,PHP的扩展开发很困难,你一搜PHP的扩展开发,所有人都告诉你那可怕的Zend API,就像遇见了伏地魔一样,人们不敢提起它。
PHP-CPP解决了这样的混乱的Zend API的问题,实际上他解决了很多问题,使用他开发PHP扩展,写起C++代码来就像写PHP一样,毕竟PHP的语法也参考了C风格。
就像下面这样,简单几行就完成了一个PHP扩展。
#include <phpcpp.h> #include <iostream> void myFunction() { Php::out << "example output" << std::endl; } extern "C" { PHPCPP_EXPORT void *get_module() { static Php::Extension extension("my_extension", "1.0"); extension.add<myFunction>("myFunction"); return extension; } }
PHP-CPP还提供了丰富的文档和注释,手把手教你如何注册函数、调用函数、匿名函数、类和对象、解析和构造、魔术方法等。
9、PHP-FPM,一个强大的稳定的HTTP服务框架
很多人总是忽视这个PHP-FPM,甚至嫌弃他。
实际上,PHP-FPM是一个大杀器,
稳定的运行
丰富的扩展
性能进阶方案
在Web中仍然闪闪发光。
本文标签: php
转载请注明来源:9个杀手级的PHP项目,快来收藏使用!
本文永久链接地址:https://www.adminjie.com/post/11945.html
免责声明:
本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
附:
二○○二年一月一日《计算机软件保护条例》第十七条规定:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬!鉴于此,也希望大家按此说明研究软件!
版权声明:
一、本站致力于为软件爱好者提供国内外软件开发技术和软件共享,着力为用户提供优资资源。
二、本站提供的部分源码下载文件为网络共享资源,请于下载后的24小时内删除。如需体验更多乐趣,还请支持正版。
三、我站提供用户下载的所有内容均转自互联网。如有内容侵犯您的版权或其他利益的,若有侵犯你的权益请:提交版权证明文件到邮箱 2225329873#qq.com(#换为@) 站长会进行审查之后,情况属实的会在三个工作日内为您删除。
更多精彩内容
- VUE中V-IF条件判断改变元素的样式操作
- Discuz如何解决安装时报错run_sql_error
- 低版本VS项目在VS2019无法正常编译的问题
- PHP+Redis链表解决高并发下商品超卖问题(实现原理及步骤)
- Oracle数据库的实例/表空间/用户/表之间关系简单讲解
- RSA2是啥?PHP-RSA2签名验证怎么实现?
- 华为dubal20是什么型号
- html5的标题标记一共有几个等级
- ana an00华为是什么型号
- 电脑显示信号线无连接是什么意思
- app是什么应用程序的简称
- html5中onclick是什么意思
- vivov1818a是什么手机型号
- 超链接的作用是什么
- 小程序大小超限除了分包还能怎么做?如何避免和解决大小限制?

- 最新文章
-
-
linux中什么是静态路由
在linux中,静态路由是路由项由手动设置的一种路由方式;即使网络状态已经改变或重新被组态,静态路由也是固定不变的,静态路由由网络管理员逐项加入路由表,可用“r...
-
php数组相加会合并重复值么
php数组相加不会合并重复值。php中可使用“+”运算符将一个或多个数组相加起来,会合并这些数组返回一个新数组,语法“数组1+数组2+..”,后面数组的元素会追...
-
php怎么去掉数组前一个元素
方法:1、用“array_values($arr)”将数组转为索引数组;2、用“array_search(值,数组)”从索引数组中搜索值,并返回对应索引;2、用...
-
浅析nodejs项目中的package.json的常见配置属性
本篇文章带大家了解一下node项目中的package.json配置文件,聊聊package.json中一些常见配置属性、环境相关属性、依赖相关属性和三方属性,希...
-
聊聊如何利用uniapp开发一个贪吃蛇小游戏!
如何利用uniapp开发一个贪吃蛇小游戏?下面本篇文章就手把手带大家在uniapp中实现贪吃蛇小游戏,希望对大家有所帮助!第一次玩贪吃蛇还隐约记得是?️后父亲给...
-
- 热门文章
-
-
VUE中V-IF条件判断改变元素的样式操作
这篇文章主要介绍了VUE中V-IF条件判断改变元素的样式操作,具有很好的参考价值,希望对大家有所帮助。一起跟随想过来看看吧...
-
Discuz如何解决安装时报错run_sql_error
问题环境VMware虚拟机Centos7.3PHP7.0MySQL8.0NGINX1.14Discuz3.4问题还原本地环境为PHP5.6+MySQL5.6在安...
-
低版本VS项目在VS2019无法正常编译的问题
低版本VS项目在VS2019无法正常编译的问题这里指的编译并不准确,只是为了方便说明。后有(未安装),201?...
-
PHP+Redis链表解决高并发下商品超卖问题(实现原理及步骤)
实现原理使用redis链表来做,因为pop操作是原子的,即使有很多用户同时到达,也是依次执行,推荐使用。实现步骤第一步,先将商品库存入队列/**.trigge...
-
Oracle数据库的实例/表空间/用户/表之间关系简单讲解
完整的Oracle数据库通常由两部分组成:Oracle数据库和数据库实例。Oracle是一种数据库管理系统,是一种关系型的数据库管理系统。我们用这些高级权限账号...
-