sinri/ark

A fundamental toolkit for PHP.

3.4.4 2022-01-14 07:49 UTC

README

GitHub license GitHub release Packagist

A fundamental toolkit for PHP 7.

composer require sinri/ark

It is a new generation for Enoch Project, as which might continuously support projects in PHP 5.4+.

If you have problem to connect to GitHub or too slow, try use mirror:

composer config repo.packagist composer https://mirrors.aliyun.com/composer/

And every living substance was destroyed which was upon the face of the ground, both man, and cattle, and the creeping things, and the fowl of the heaven; and they were destroyed from the earth: and Noah only remained [alive], and they that [were] with him in the ark. (Genesis 7:23)

Environment

Ark requests PHP 7. If you need Redis, you might need to declare the reference of predis/predis. Since version 2.1, Ark-Core and Ark-Curl use version 2. Since version 2.4, Ark-Cache use version 2 to support PSR-16. Since version 3.3, Ark-Web became independent as 1.0.0. Now Ark has been in 3.x.

Toolkit Map

Components

Basic Functions

  • sinri/ark-core Packagist
  • sinri/ark-web Packagist
  • sinri/ark-curl Packagist
  • sinri/ark-cache Packagist
  • sinri/ark-xml Packagist

Database Related

  • sinri/ark-pdo Packagist
  • sinri/ark-mysqli Packagist
  • sinri/ark-sqlite3 Packagist
  • sinri/ark-couchdb Packagist
  • sinri/ark-redis Packagist

Email Related

  • sinri/ark-mail Packagist
  • sinri/ark-imap Packagist

Queue Related

  • sinri/ark-queue Packagist
  • sinri/ark-lock Packagist
  • sinri/ark-event Packagist

Lightweight Directory Access Protocol

  • sinri/ark-ldap Packagist

QR Code

  • sinri/ark-qr-builder Packagist

Remote File System Access

  • sinri/ark-ftp Packagist
  • sinri/ark-sftp Packagist

WebSocket Server

  • sinri/ark-websocket Packagist Version

Independent Toolkit

Class ArkHelper is designed for the convenience of developing, it help you to operate data structure safely, and some environment shortcuts.

Class ArkLogger is an implementation of PSR-3. You might create an instance with certain log storage path, or use a silent one as default.

Class ArkCurl provides a higher level usage of CURL.

Class ArkCache defined the interface of being a cache handler, and implementations by File System and Redis, also the fallback choice Dummy. (Note, if you want to use Redis, predis/predis is needed in composer.json.)

Class ArkPDO with model encapsulation are there for you Database Operation.

Class ArkSqlite3 is an extended tool for working on SQLite3.

Web Toolkit

The main reference is Ark(), which would provide a singleton of class TheArk.

For web service, Class TheArk contains:

  • Method webInput, give the global instance of class ArkWebInput.
  • Method webOutput, give the global instance of class ArkWebOutput.
  • Method webService, give the global instance of class ArkWebService.

For general routines, the multi-instance hubs (register and get) are provided:

  • Hub for ArkPDO
  • Hub for ArkLogger
  • Hub for ArkCache

CLI Toolkit

Class ArkCliProgram is designed to support a whole CLI project with certain namespace and class rule.

Server Config Reference

If you use Apache to load the project, you need to add the .htaccess file and open the allow override option.

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [QSA,L]

For Nginx, you should use try_files.

server {
    location / {
        try_files $uri $uri/ /index.php$is_args$args;
    }
}

Who use this?

Not so many in fact. Amongst them, Leqee is one.

Donation

BitCoin/BTC: 18wCjV8mnepDpLzASKdW7CGo6U8F9rPuV4

Alipay Account:

Alipay