Maison  >  Article  >  9 projets PHP qui tuent, venez les récupérer pour les utiliser !

9 projets PHP qui tuent, venez les récupérer pour les utiliser !

青灯夜游
青灯夜游avant
2022-05-05 12:02:295089parcourir

PHP est développé depuis de nombreuses années et il existe de nombreux projets intéressants. Débarrassons-nous de ces satanés CRUD et découvrons ces projets amusants.

1. php-ai/php-ml, une bibliothèque d'apprentissage automatique PHP avancée

php-ml est une bibliothèque d'apprentissage automatique implémentée en PHP, comprenant des algorithmes, des réseaux de neurones, la validation croisée, le prétraitement et des solutions fonctionnelles couramment utilisé dans le domaine de l’intelligence artificielle comme l’extraction de fonctionnalités.

Le responsable fournit également de nombreux cas, tels que :

  • Détection de la classification des langues

  • MNIST Reconnaissance des polices manuscrites (projet standard d'entrée d'intelligence artificielle)

  • Filtrage du spam

  • Classification des articles

  • Prédire la qualité du vin

php-ml dispose d'une documentation complète et de riches articles de blog. Mais c'est déjà le domaine de l'intelligence artificielle, et votre structure de connaissances ne pourra peut-être pas être utilisée avant un certain temps.

L'utilisation simple est la suivante :

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, une bibliothèque de réseau neuronal PHP avancée

Il s'agit également d'un projet d'intelligence artificielle, d'une bibliothèque de réseau neuronal PHP avancée, vous pouvez utiliser PHP Implement un puissant projet de machine learning.

Il présente les fonctionnalités suivantes :

  • Vous pouvez facilement implémenter les modèles d'apprentissage automatique DNN, CNN, RNN et Attention

  • Il est très similaire à Keras de Python, vous pouvez utiliser une expérience pertinente

  • Fournit un apprentissage automatique Vision industrielle et traitement du langage naturel

  • Les performances de traitement sont deux fois supérieures à celles du processeur tensorflow

  • Pas besoin d'un environnement d'exploitation spécial, il peut fonctionner dans n'importe quel environnement informatique

  • Livré avec des exemples de programmes intéressants

Et il existe des extensions de calcul associées pour améliorer les performances. Il existe également une extension du GPU, qui peut utiliser la puissance de calcul du GPU pour améliorer encore les performances, mais elle est encore en phase de test.

9 projets PHP qui tuent, venez les récupérer pour les utiliser !

3. rubix/ml, une bibliothèque avancée d'apprentissage automatique et d'apprentissage profond PHP

Oui, voici une autre bibliothèque d'intelligence artificielle PHP.

Il possède les fonctionnalités suivantes :

  • Appels de méthodes d'interface très conviviales pour les développeurs

  • Plus de 40 méthodes d'apprentissage supervisées ou non supervisées

  • Prend en charge ETL, le prétraitement et la validation croisée

Par rapport au au-dessus de deux, il fournit le plus de tutoriels et d'exemples de projets, parmi lesquels les plus intéressants incluent la prédiction de divorce, la prédiction du taux de victoire DOTA2, etc., et il fournit également des canaux de communication pour les groupes Telegram.

9 projets PHP qui tuent, venez les récupérer pour les utiliser !

4. nlp-tools/nlp-tools, une bibliothèque de traitement du langage naturel semi-avancée pour les débutants

Il s'agit d'une bibliothèque spécifiquement utilisée pour traiter le domaine du traitement du langage naturel en intelligence artificielle. fournis sont de niveau inférieur aux précédents, mais ils restent élégants à utiliser.

Il intègre plusieurs modèles de classification, méthodes de regroupement, segmenteurs de mots, ensembles de données, etc. Presque tous les outils et données nécessaires à cette collection.

Par rapport à plusieurs projets introduits auparavant, il est spécialement conçu pour traiter du domaine du langage naturel et est très convivial pour les débutants. Il dispose d'une documentation riche et d'un ensemble complet d'outils et de données intégrés.

Voici une démonstration de l'effet de segmentation des mots :

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, un framework de service de liaisons longues distribuées

GatewayWorker est un framework de projet développé sur la base de Workerman et est utilisé pour développer rapidement TCP long applications de connexion, telles que le serveur Push App, le serveur de messagerie instantanée, le serveur de jeux, l'Internet des objets, la maison intelligente, etc.

Par rapport à d'autres solutions similaires, elle offre plusieurs avantages incomparables :

  • Démon de processus intégré, qui peut s'exécuter de manière stable via une simple ligne de commande, sans qu'il soit nécessaire d'implémenter une opération en arrière-plan ou un démon de processus

  • . Conception distribuée intégrée, qui peut réaliser un déploiement distribué sans modifier aucun code

  • Opérations parfaites sur les liens longs, y compris la liaison de l'UID à la connexion, la liaison du groupe à la connexion, le maintien de la SESSION, etc.

  • Fournit une utilisation standard des messages push au sein du système et fournit un client qui peut envoyer des messages au réseau de passerelle à tout moment

gatewayworker résout presque tous les problèmes liés au développement de liens longs et est très facile à utiliser. Il est à noter qu'il s'agit d'un framework conçu pour les connexions longues. S'il s'agit d'une connexion courte (UDP), d'autres solutions sont nécessaires.

Cela commence comme suit. Aucune opération supplémentaire n'est requise pour terminer de manière robuste le démon de processus et redémarrer en douceur.

1) Démarrer

  • Démarrer en mode débogage

php start.php start
  • Démarrer en mode démon

php start.php start -d

2) Arrêter

php start.php stop

3) Redémarrez

php start.php restart

4) Redémarrage en douceur

php start.php reload

5) Vérifier l'état

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 projets PHP qui tuent, venez les récupérer pour les utiliser !

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

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

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer