Download the PHP package kingsoft/persist-db without Composer
On this page you can find all versions of the php package kingsoft/persist-db. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download kingsoft/persist-db
More information about kingsoft/persist-db
Files in kingsoft/persist-db
Package persist-db
Short Description Implementation of Kingsoft/IPersist for databases using Kingsoft/Database as a backend.
License MIT
Informations about the package persist-db
DB implementation of Persist
This implementation of the abstract Persist/Base
uses a Db
connection to make tables in the database available as persistent PHP objects. This generates a class for every table or view in the database extracting PK, possibly with auto increment from tables. With Mariadb it is not possible to extract PK from a view so manual setting the getPrimaryKey() is needed.
Setup
To create the PHP proxies to the tables and views use
which only works if the proper global SETTINGS array is available. (See Kingsoft\Utils
. Specifically it requires the proper DB settings and a namespace=
setting under [api]
to generate the classses in the required PHP namespace. The location can later be added to the composer.json
file for autoload.
If a PK is not auto increment, a string is generated with bin2hex(random_bytes(12)) with the tablename- as prefix. The atrribute should be larger than CHAR(str_len(tablename) + 1 + 24).
This will create a folder discovered
in the root with subfolders based on namespace in the settings file. It also responds with a page listing what is available. To have the proxies autoloaded add the psr-4 section to your composer.json
and run
The allowedEndPoints
array can be used for a persist-rest
settings section.
The proxy objects work as a facade for database tables and can now used to (CRUD)
- Created a record, set the attributes and call
Persist::freeze()
to store it in the database - Read by constructor( ) using the record's id as the single parameter
- Update by reading, changing the properties and IPersist::freeze()
- Delete by
thaw
ing andIPersist::delete
ing the php object
We have turened a normal PHP object in a CRUD object in this way. Yaj!
Searching
Searching is also possible be setting a where and order with a static findall
which gets a Generator
interface to use with foreach. A findFirst
, fineNext
, can be used in an Iterator
context using the Persist\IteratorTrait
. The object itself is a generater and can be used in a yield
loop.
Services
Persist\Base::createFromArray()
creates a record from an array representationPersist\Base::getJson()
creates a json representation of the objectPersist\Base::createFromJson()
does the reverse
All versions of persist-db with dependencies
kingsoft/db Version >=2.7
kingsoft/persist Version ^3.2
kingsoft/utils Version ^2.7