Heim  >  Artikel  >  9 Killer-PHP-Projekte, kommen Sie und sammeln Sie sie zur Verwendung!

9 Killer-PHP-Projekte, kommen Sie und sammeln Sie sie zur Verwendung!

青灯夜游
青灯夜游nach vorne
2022-05-05 12:02:294999Durchsuche

PHP wird seit so vielen Jahren entwickelt und es gibt viele interessante Projekte. Lassen Sie uns diese lästigen CRUDs loswerden und mehr über diese unterhaltsamen Projekte erfahren.

1. php-ai/php-ml, eine erweiterte PHP-Bibliothek für maschinelles Lernen

php-ml ist eine in PHP implementierte Bibliothek für maschinelles Lernen, einschließlich Algorithmen, neuronaler Netze, Kreuzvalidierung, Vorverarbeitung und allgemeiner funktionaler Lösungen werden im Bereich der künstlichen Intelligenz wie der Merkmalsextraktion eingesetzt.

Der Beamte stellt auch zahlreiche Fälle bereit, wie zum Beispiel:

  • Erkennen der Sprachklassifizierung

  • MNIST Erkennen handschriftlicher Schriftarten (Standard-Eingabeprojekt für künstliche Intelligenz)

  • Spamfilterung

  • Artikelklassifizierung

  • Vorhersage der Weinqualität

php-ml verfügt über eine vollständige Dokumentation und umfangreiche Blogbeiträge. Dies ist jedoch bereits der Bereich der künstlichen Intelligenz, und Ihre Wissensstruktur kann möglicherweise für eine Weile nicht genutzt werden.

Die einfache Verwendung ist wie folgt:

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, eine erweiterte PHP-Bibliothek für neuronale Netzwerke

Dies ist auch ein Projekt für künstliche Intelligenz, eine erweiterte PHP-Bibliothek für neuronale Netzwerke, die Sie mit PHP implementieren können ein leistungsstarkes maschinelles Lernprojekt. Es verfügt über die folgenden Funktionen:

    Sie können problemlos DNN-, CNN-, RNN- und Attention-Modelle für maschinelles Lernen implementieren.
  • Es ist Pythons Keras sehr ähnlich, Sie können relevante Erfahrungen nutzen.
  • Bietet maschinelles Lernen Maschinelles Sehen und Verarbeitung natürlicher Sprache
  • Die Verarbeitungsleistung ist doppelt so hoch wie die der Tensorflow-CPU
  • Keine spezielle Betriebsumgebung erforderlich, es kann in jeder Computerumgebung ausgeführt werden
  • Kommt mit interessanten Beispielprogrammen
  • Und es gibt verwandte Rechenerweiterungen zur Verbesserung der Leistung. Es gibt auch eine Erweiterung zur GPU, die die Rechenleistung der GPU zur weiteren Leistungssteigerung nutzen kann, diese befindet sich jedoch noch im Teststadium.

9 Killer-PHP-Projekte, kommen Sie und sammeln Sie sie zur Verwendung!

3. rubix/ml, eine fortschrittliche PHP-Bibliothek für maschinelles Lernen und Deep Learning

Ja, hier ist eine weitere PHP-Bibliothek für künstliche Intelligenz.

Es verfügt über die folgenden Funktionen:

    Sehr entwicklerfreundliche Schnittstellenmethodenaufrufe
  • Mehr als 40 überwachte oder unüberwachte Lernmethoden
  • Unterstützt ETL, Vorverarbeitung und Kreuzvalidierung
  • Verglichen mit dem Die beiden oben genannten bieten die meisten Tutorials und Beispielprojekte, darunter die interessantesten wie Scheidungsvorhersagen, DOTA2-Gewinnquotenvorhersagen usw., und sie stellt auch Kommunikationskanäle für Telegram-Gruppen bereit.

9 Killer-PHP-Projekte, kommen Sie und sammeln Sie sie zur Verwendung!

4. nlp-tools/nlp-tools, eine halbfortgeschrittene Bibliothek zur Verarbeitung natürlicher Sprache für Anfänger

Dies ist eine Bibliothek, die speziell für den Umgang mit dem Bereich der Verarbeitung natürlicher Sprache in der künstlichen Intelligenz verwendet wird Die bereitgestellten Funktionen sind zwar auf einem niedrigeren Niveau als die vorherigen, aber dennoch elegant in der Anwendung.

Es verfügt über mehrere integrierte Klassifizierungsmodelle, Clustering-Methoden, Wortsegmentierer, Datensätze usw. Fast alle für diese Sammlung erforderlichen Tools und Daten.

Im Vergleich zu mehreren zuvor vorgestellten Projekten ist es speziell für den Bereich der natürlichen Sprache konzipiert und sehr anfängerfreundlich. Es verfügt über eine umfangreiche Dokumentation und einen vollständigen Satz integrierter Tools und Daten.

Hier ist eine Demonstration des Wortsegmentierungseffekts:

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, ein verteiltes Long-Link-Service-Framework

GatewayWorker ist ein auf Workerman basierendes Projekt-Framework, das zur schnellen Entwicklung von TCP Long verwendet wird Verbindungsanwendungen wie App-Push-Server, Instant-IM-Server, Spieleserver, Internet der Dinge, Smart Home usw.

Im Vergleich zu anderen Lösungen dieser Art bietet es mehrere unvergleichliche Vorteile:

    Eingebauter Prozessdämon, der stabil über eine einfache Befehlszeile ausgeführt werden kann, ohne dass Sie selbst einen Hintergrundbetrieb oder einen Prozessdämon implementieren müssen
  • Integriertes verteiltes Design, das eine verteilte Bereitstellung ohne Änderung von Code realisieren kann
  • Perfekte Vorgänge für lange Links, einschließlich Bindung von UID an Verbindung, Bindung von Gruppe an Verbindung, Aufrechterhaltung von SESSION usw.
  • Bietet die Standardverwendung von Push-Nachrichten innerhalb des Systems und stellt einen Client bereit, der jederzeit Nachrichten an das Gateway-Netzwerk senden kann
  • gatewayworker löst fast alle Probleme bei der Entwicklung langer Links und ist sehr einfach zu verwenden. Es ist zu beachten, dass es sich um ein Framework handelt, das für lange Verbindungen ausgelegt ist. Handelt es sich um eine kurze Verbindung (UDP), sind andere Lösungen erforderlich.

Es beginnt wie folgt. Es sind keine weiteren Vorgänge erforderlich, um den Prozessdämon robust abzuschließen und reibungslos neu zu starten. ??

3) Neustart

php start.php start
4) Reibungsloser Neustart

    php start.php start -d
  • 5) Status prüfen

  • 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 Killer-PHP-Projekte, kommen Sie und sammeln Sie sie zur Verwendung!

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

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

Stellungnahme:
Dieser Artikel ist reproduziert unter:toutiao.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen