• 技术文章 >头条

    9个杀手级的PHP项目,快来收藏使用!

    青灯夜游青灯夜游2022-05-12 10:35:58转载1283
    PHP发展了这么多年,有许多有趣的项目。让我们摆脱那些讨厌的增删改查,一起来了解这些有趣的项目。

    1、php-ai/php-ml,一个高级的PHP的机器学习库

    php-ml是一个使用PHP实现的机器学习库,包含算法、神经网络、交叉验证、预处理、特征提取等人工智能领域中常用的功能方案。

    官方还提供了众多的案例,比如:

    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实现一个强大的机器学习项目。

    它有以下特点:

    并且有相关的计算扩展,用于提高性能。还有对于GPU的扩展,可以利用GPU的计算能力,进一步提高性能,不过目前这一点还在测试阶段。

    1.png

    3、rubix/ml,一个高级的PHP的机器学习和深度学习库

    是的, 这里又介绍了一个PHP的人工智能库。

    他有这样几个特点:

    与上面两个相比相比,它提供了最多的教程和示例项目 教程和示例项目 ,其中比较有趣的有离婚预测、DOTA2胜率预测等, 并且提供了电报群的交流渠道。

    2.png

    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服务端、游戏服务端、物联网、智能家居等等。

    与其他的此类方案相比,它提供了这样几个无可比拟的优点:

    gatewayworker几乎解决了长链接开发中的所有痛点,非常好用。要注意的是,他是为长链接而设计的框架,如果是短连接(UDP)则需要其他方案。

    它的启动方式如下,无需更多操作,健壮地完成进程守护、平滑重启。

    1)启动

    php start.php start
    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的命令导入。

    这样有很多好处:

    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的文件操作库,比如文件的读取、写入、目录列表等等操作。与众不同的是,他是“万能的”。其实说它是万能的有些夸张了,但是他官方支持了以下系统:

    在社区生态中,还支持我们经常接触的一些系统:

    等等,如果你需要,也可以自定义驱动。

    就像下面的代码一样,对文件的操作是通用兼容的,如果需要切换存储系统,换一个驱动就可以了。

    // 设置驱动
    $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中仍然闪闪发光。

    3.png

    声明:本文转载于:今日头条,如有侵犯,请联系admin@php.cn删除
    专题推荐:php
    上一篇:五一疫情在家哪都不能去?来学习吧 下一篇:10个值得了解的 Chrome 插件,助你提高工作效率!
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【腾讯云】年中优惠,「专享618元」优惠券!• 前端开发不可错过的25个网站,快放入收藏夹!• 强推:20个值得收藏的ES6小技巧• 20个不可错过的github前端开源项目,赶紧放入收藏夹!• 收藏这些vue项目性能优化方式,总有一天能用上!• 五一疫情在家哪都不能去?来学习吧
    1/1

    PHP中文网