首頁  >  文章  >  9個殺手級的PHP項目,快來收藏使用!

9個殺手級的PHP項目,快來收藏使用!

青灯夜游
青灯夜游轉載
2022-05-05 12:02:295083瀏覽

PHP發展了這麼多年,有許多有趣的項目。讓我們擺脫那些討厭的增刪改查,一起來了解這些有趣的項目。

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的運算能力,進一步提高效能,不過目前這一點還在測試階段。

9個殺手級的PHP項目,快來收藏使用!

3、rubix/ml,一個高階的PHP的機器學習和深度學習庫

是的, 這裡又介紹了一個PHP的人工智慧函式庫。

他有這樣幾個特點:

    對開發人員很友善的介面方法呼叫
  • 40多種監督或非監督學習方法
  • 支援ETL、預處理和交叉驗證
  • 與上面兩個相比,它提供了最多的教程和範例項目教程和範例項目,其中比較有趣的有離婚預測、DOTA2勝率預測等, 並且提供了電報群的交流管道。

9個殺手級的PHP項目,快來收藏使用!

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(&#39;user_logins&#39;);
        $table->addColumn(&#39;user_id&#39;, &#39;integer&#39;)
              ->addColumn(&#39;created&#39;, &#39;datetime&#39;)
              ->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中仍然闪闪发光。

9個殺手級的PHP項目,快來收藏使用!

原文地址:https://phpreturn.com/index/a624ac38895749.html

原文平台:phpreturn(PHP武器库)

陳述:
本文轉載於:toutiao.com。如有侵權,請聯絡admin@php.cn刪除