Download .zip |
Info | Documentation | View files (15) | Download .zip | Reputation | Support forum | Blog | Links |
Last Updated | Ratings | Unique User Downloads | Download Rankings | |||||
2016-11-10 (1 month ago) | Not enough user ratings | Total: 155 | All time: 8,186 This week: 826 |
Version | License | PHP version | Categories | |||
papyrus 1.0.3 | GNU General Publi... | 5 | PHP 5, Databases, Files and Folders |
Description | Author | |
This package can store and retrieve database data in files. |
The Papyrus package can store information in files, perform queries, updates, and deletes data . All this, based on a primary key or identifier. The information is stored in JSON format.
To install via composer (http://getcomposer.org/), place the following in your composer.json file:
{
"require": {
"barbosa/papyrus": "dev-master"
}
}
or download package from github.com:
http://github.com/barbosa89/papyrus
Papyrus need to run an array of configurations and a path to the folder containing the files storage.
Create an array of configurations in a file or in the file which instances to Papyrus. The array must have two key, extension and files:
<?php
/
* Example in a configurations file.
*/
return [
'extension' => '.project',
'files' => [
'users' => ['dni(int#)', 'name', 'lastName']
]
];
Other way, in the file which instances to Papyrus:
<?php
require 'vendor/autoload.php';
use \Barbosa\Papyrus\Papyrus;
$config = [
'extension' => '.project',
'files' => [
'users' => ['dni(int#)', 'name', 'lastName']
]
];
$papyrus = new Papyrus($config);
This extension is for all files:
'extension' => '.project'
The file structure represents fields in a SQL table , what is in brackets, are the fields of each file:
'files' => [
'fileName' => ['primaryKey(int#)', 'field', 'otherField'],
'otherFileName' => ['primaryKey(str#)', 'field', 'otherField']
]
The options for primary key:
Auto increment integer (int++)
Unique integer (int#)
Unique string (str#)
Storage files that are configured in the array must be created in a folder chosen by the user, the folder path should be passed to Papyrus:
<?php
require 'vendor/autoload.php';
use \Barbosa\Papyrus\Papyrus;
/
* Complete example.
*/
$config = [
'extension' => '.project',
'files' => [
'users' => ['dni(int#)', 'name', 'lastName']
]
];
$path = realpath(__DIR__ . '/storageFolder/');
$papyrus = new Papyrus($config, $path);
You can also switch configurations through methods:
<?php
require 'vendor/autoload.php';
use \Barbosa\Papyrus\Papyrus;
/
* Complete example with setters.
*/
$papyrus = new Papyrus();
$papyrus->setStoragePath(realpath(__DIR__ . '/storageFolder/'));
$config = [
'extension' => '.project',
'files' => [
'users' => ['dni(int#)', 'name', 'lastName']
]
];
$papyrus->loadConfigurations($config);
As example, a file will be created with registers name and the extension .data:
$ touch path/to/storageFolder/registers.data
In the console:
$ ls -l
-rwx---rw- 1 user user 494 jul 8 21:10 registers.data
You can add every files that you need.
Files in the storage folder (path/to/storageFolder/):
chmod 706 fileName.extension
Example:
chmod 706 registers.data
For purposes of explaining with examples , it is assumed that there is a file called users with the following structure:
'files' => [
'users' => ['dni(int#)', 'name', 'lastName']
]
Field dni(int#), indicates that is the primary key and a unique integer.
Require the autoload file:
require 'vendor/autoload.php';
use \Barbosa\Papyrus\Papyrus;
$values = ['dni' => 123456, 'name' => 'Tony', 'lastName' => 'Stark'];
$papyrus = new Papyrus();
$papyrus->insertInto('users')->values($values)->runQuery();
The where method can only receive a value of array type, which should be the primary key or identifier.
$papyrus->select()->from('users')->runQuery();
$papyrus->select('dni, name')->from('users')->runQuery();
$papyrus->select()->from('users')->where(['dni' => 123456])->runQuery();
$papyrus->select('dni, name')->from('users')->where(['dni' => 123456])->runQuery();
$papyrus->select()->from('users')->orderBy(['name' => 'ASC'])->runQuery();
$papyrus->select('dni, lastName')->from('users')->orderBy(['lastName' => 'ASC'])->runQuery();
$papyrus->select()->from('users')->limit(3)->runQuery();
$papyrus->select()->from('users')->limit(3)->orderBy(['name' => 'DESC'])->runQuery();
$papyrus->deleteFrom('users')->runQuery();
$papyrus->deleteFrom('users')->where(['dni' => 123456])->runQuery();
The primary key of a record can not be modified.
$data = ['name' => 'Tony', 'lastname' => 'Stark'];
$papyrus->update('users')->set($data)->runQuery();
$data = ['name' => 'Tony', 'lastName' => 'The Iron Man'];
$papyrus->update('users')->set($data)->where(['dni' => 123456])->runQuery();
$papyrus->getRecords();
$papyrus->getStatus();
Papyrus::select($fields);
Papyrus::deleteFrom($file = '');
Papyrus::update($file = '');
Papyrus::from($file = '');
Papyrus::insertInto($file = '');
Papyrus::set(array $data = null);
Papyrus::values(array $data = null);
Papyrus::where(array $conditions = null);
Papyrus::orderBy(array $order = null);
Papyrus::limit($limit = 0);
Papyrus::runQuery();
Papyrus::getRecords();
Papyrus::getStatus();
$papyrus->loadConfigurations(array $config = null);
$papyrus->setStoragePath($path = '');
Thanks...
Files |
File | Role | Description | ||
---|---|---|---|---|
src (5 files) | ||||
.gitignore | Data | Auxiliary data | ||
CHANGELOG.md | Data | Auxiliary data | ||
composer.json | Data | Auxiliary data | ||
CONDUCT.md | Data | Auxiliary data | ||
config.dist.php | Aux. | Auxiliary script | ||
config.example.php | Aux. | Auxiliary script | ||
CONTRIBUTING.md | Data | Auxiliary data | ||
LICENSE | Lic. | License text | ||
README.md | Doc. | Documentation | ||
README.spanish.md | Example | Example script |
Files | / | src |
File | Role | Description |
---|---|---|
EngineFiles.php | Class | Class source |
FluentInterface.php | Class | Class source |
Helper.php | Class | Class source |
Papyrus.php | Class | Class source |
Transaction.php | Class | Class source |
Version Control | Unique User Downloads | Download Rankings | |||||||||||||||
100% |
|
|
Applications that use this package |
If you know an application of this package, send a message to the author to add a link here.