forked from mirzaev/baza
parent
7783dab80b
commit
3c81ade7c6
|
@ -38,7 +38,7 @@ $record = $database->record(
|
|||
);
|
||||
|
||||
if ($database->write($record)) {
|
||||
// Writed the record into the database
|
||||
// Wrote the record into the database
|
||||
|
||||
// Updating the record in the database
|
||||
$updated = $database->read(
|
||||
|
@ -48,7 +48,7 @@ if ($database->write($record)) {
|
|||
);
|
||||
|
||||
// Reading the record from the database
|
||||
$readed = $database->read(
|
||||
$read = $database->read(
|
||||
filter: fn($record) => $record->name === 'Arsen' && $record->age === 24,
|
||||
amount: 1
|
||||
);
|
||||
|
|
|
@ -1,34 +0,0 @@
|
|||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace mirzaev\baza;
|
||||
|
||||
// Files of the project
|
||||
use mirzaev\baza\enumerations\architecture;
|
||||
|
||||
|
||||
// Built-in libraries
|
||||
use DomainExceptionn as exception_domain;
|
||||
|
||||
/**
|
||||
* Core
|
||||
*
|
||||
* @package mirzaev/baza
|
||||
*
|
||||
* @method void architecture() Get PHP distribution architecture
|
||||
* @see https://www.php.net/manual/en/function.pack.php#109382
|
||||
*
|
||||
* @license http://www.wtfpl.net/ Do What The Fuck You Want To Public License
|
||||
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
||||
*/
|
||||
|
||||
final class core
|
||||
{
|
||||
public static function architecture(): ?architecture {
|
||||
return match(PHP_INT_SIZE) {
|
||||
4 => architecture::x86,
|
||||
8 => architecture::x86_64,
|
||||
default => throw new exception_domain('Failed to determinate the system architecture'),
|
||||
};
|
||||
}
|
||||
}
|
|
@ -306,7 +306,7 @@ class database
|
|||
// Encoding the unpacked value
|
||||
$encoded = mb_convert_encoding($unnulled, $this->encoding->value);
|
||||
|
||||
// Writing into the buffer of readed values
|
||||
// Writing into the buffer of read values
|
||||
$unpacked[] = $encoded;
|
||||
}
|
||||
/**
|
||||
|
@ -328,7 +328,7 @@ p * PHP builtin pack() ignores 64-bit integer values
|
|||
} else {
|
||||
// Other types
|
||||
|
||||
// Writing into the buffer of readed values
|
||||
// Writing into the buffer of read values
|
||||
$unpacked[] = unpack($column->type->value, $binary ?? "\0")[1];
|
||||
}
|
||||
}
|
||||
|
@ -350,7 +350,7 @@ p * PHP builtin pack() ignores 64-bit integer values
|
|||
* @throws exception_runtime If failed to lock the file
|
||||
* @throws exception_runtime If failed to unlock the file
|
||||
*
|
||||
* @return bool Is the record was writed into the end of the database file
|
||||
* @return bool Is the record was wrote into the end of the database file
|
||||
*/
|
||||
public function write(record $record): bool
|
||||
{
|
||||
|
@ -409,7 +409,7 @@ p * PHP builtin pack() ignores 64-bit integer values
|
|||
* @param int $amount Amount iterator
|
||||
* @param int $offset Offset iterator
|
||||
*
|
||||
* @return array|null Readed records
|
||||
* @return array|null Read records
|
||||
*/
|
||||
public function read(
|
||||
?callable $filter = null,
|
||||
|
@ -424,7 +424,7 @@ p * PHP builtin pack() ignores 64-bit integer values
|
|||
if (flock($file, LOCK_EX)) {
|
||||
// The file was locked
|
||||
|
||||
// Declaring the buffer of readed records
|
||||
// Declaring the buffer of read records
|
||||
$records = [];
|
||||
|
||||
// Declaring the buffer of failed to reading records
|
||||
|
|
|
@ -163,7 +163,7 @@ echo '[' . ++$action . "] Initialized the record\n";
|
|||
// Writing the second record into the databasse
|
||||
$database->write($record_ivan);
|
||||
|
||||
echo '[' . ++$action . "] Writed the record into the database\n";
|
||||
echo '[' . ++$action . "] Wrote the record into the database\n";
|
||||
|
||||
// Initializing the second record
|
||||
if (ARCHITECTURE === architecture::x86_64) {
|
||||
|
@ -192,12 +192,12 @@ echo '[' . ++$action . "] Initialized the record\n";
|
|||
// Writing the second record into the databasse
|
||||
$database->write($record_margarita);
|
||||
|
||||
echo '[' . ++$action . "] Writed the record into the database\n";
|
||||
echo '[' . ++$action . "] Wrote the record into the database\n";
|
||||
|
||||
// Reading all records from the database
|
||||
$records_readed_all = $database->read(amount: 99999);
|
||||
$records_read_all = $database->read(amount: 99999);
|
||||
|
||||
echo '[' . ++$action . "] Readed all records from the database\n";
|
||||
echo '[' . ++$action . "] Read all records from the database\n";
|
||||
|
||||
try {
|
||||
echo '[' . ++$action . '][' . ++$test . '][' . (gettype($records_readed_all) === 'array' ? 'SUCCESS' : 'FAIL') . '][type of returned value] Expected: "array". Actual: "' . gettype($records_readed_all) . "\"\n";
|
||||
|
@ -208,18 +208,18 @@ try {
|
|||
echo '[' . $action . '][' . ++$test . '][' . ($records_readed_all[0]->neuron_count === 91000000000 ? 'SUCCESS' : 'FAIL') . ']["neuron_count"] Expected: "91000000000" (integer). Actual: "' . $records_readed_all[0]->neuron_count . '" (' . gettype($records_readed_all[0]->neuron_count) . ")\n";
|
||||
}
|
||||
|
||||
echo '[' . $action . "] The readed all records checks have been completed\n";
|
||||
echo '[' . $action . "] The read all records checks have been completed\n";
|
||||
} catch (exception $e) {
|
||||
echo '[' . $action . "][WARNING] The readed all records checks have been completed with errors\n";
|
||||
echo '[' . $action . "][WARNING] The read all records checks have been completed with errors\n";
|
||||
}
|
||||
|
||||
// Reinitializing the counter of tests
|
||||
$test = 0;
|
||||
|
||||
// Reading the first record from the database
|
||||
$record_readed_first = $database->read(amount: 1);
|
||||
$record_read_first = $database->read(amount: 1);
|
||||
|
||||
echo '[' . ++$action . "] Readed the first record from the database\n";
|
||||
echo '[' . ++$action . "] Read the first record from the database\n";
|
||||
|
||||
try {
|
||||
echo '[' . ++$action . '][' . ++$test . '][' . (gettype($record_readed_first) === 'array' ? 'SUCCESS' : 'FAIL') . '][type of returned value] Expected: "array". Actual: "' . gettype($record_readed_first) . "\"\n";
|
||||
|
@ -231,18 +231,18 @@ try {
|
|||
echo '[' . $action . '][' . ++$test . '][' . ($record_readed_first[0]->neuron_count === 91000000000 ? 'SUCCESS' : 'FAIL') . ']["neuron_count"] Expected: "91000000000" (integer). Actual: "' . $record_readed_first[0]->neuron_count . '" (' . gettype($record_readed_first[0]->neuron_count) . ")\n";
|
||||
}
|
||||
|
||||
echo '[' . $action . "] The readed first record checks have been completed\n";
|
||||
echo '[' . $action . "] The read first record checks have been completed\n";
|
||||
} catch (exception $e) {
|
||||
echo '[' . $action . "][WARNING] The readed first record checks have been completed with errors\n";
|
||||
echo '[' . $action . "][WARNING] The read first record checks have been completed with errors\n";
|
||||
}
|
||||
|
||||
// Reinitializing the counter of tests
|
||||
$test = 0;
|
||||
|
||||
// Reading the second record from the database
|
||||
$record_readed_second = $database->read(amount: 1, offset: 1);
|
||||
$record_read_second = $database->read(amount: 1, offset: 1);
|
||||
|
||||
echo '[' . ++$action . "] Readed the second record from the database\n";
|
||||
echo '[' . ++$action . "] Read the second record from the database\n";
|
||||
|
||||
try {
|
||||
echo '[' . ++$action . '][' . ++$test . '][' . (gettype($record_readed_second) === 'array' ? 'SUCCESS' : 'FAIL') . '][type of returned value] Expected: "array". Actual: "' . gettype($record_readed_second) . "\"\n";
|
||||
|
@ -256,22 +256,22 @@ try {
|
|||
*
|
||||
* @see https://www.php.net/manual/en/language.types.float.php#113703
|
||||
*/
|
||||
echo '[' . $action . '][' . ++$test . '][' . (round($record_readed_second[0]->motivation, 2) === round(2.2250738585072E-308, 2) ? 'SUCCESS' : 'FAIL') . ']["motivation"] Expected: "2.2250738585072E-308" (double). Actual: "' . $record_readed_second[0]->motivation . '" (' . gettype($record_readed_second[0]->motivation) . ")\n";
|
||||
echo '[' . $action . '][' . ++$test . '][' . ($record_readed_second[0]->reputation === (int) -9223372036854775808 ? 'SUCCESS' : 'FAIL') . ']["reputation"] Expected: "-9223372036854775808" (integer). Actual: "' . $record_readed_second[0]->reputation . '" (' . gettype($record_readed_second[0]->reputation) . ")\n";
|
||||
echo '[' . $action . '][' . ++$test . '][' . (round($record_read_second[0]->motivation, 2) === round(2.2250738585072E-308, 2) ? 'SUCCESS' : 'FAIL') . ']["motivation"] Expected: "2.2250738585072E-308" (double). Actual: "' . $record_read_second[0]->motivation . '" (' . gettype($record_read_second[0]->motivation) . ")\n";
|
||||
echo '[' . $action . '][' . ++$test . '][' . ($record_read_second[0]->reputation === (int) -9223372036854775808 ? 'SUCCESS' : 'FAIL') . ']["reputation"] Expected: "-9223372036854775808" (integer). Actual: "' . $record_read_second[0]->reputation . '" (' . gettype($record_read_second[0]->reputation) . ")\n";
|
||||
}
|
||||
|
||||
echo '[' . $action . "] The readed second record checks have been completed\n";
|
||||
echo '[' . $action . "] The read second record checks have been completed\n";
|
||||
} catch (exception $e) {
|
||||
echo '[' . $action . "][WARNING] The readed second record checks have been completed with errors\n";
|
||||
echo '[' . $action . "][WARNING] The read second record checks have been completed with errors\n";
|
||||
}
|
||||
|
||||
// Reinitializing the counter of tests
|
||||
$test = 0;
|
||||
|
||||
// Reading the record from the database by filter
|
||||
$record_readed_filter = $database->read(filter: fn($record) => $record?->second_name === 'Ivanov', amount: 1);
|
||||
$record_read_filter = $database->read(filter: fn($record) => $record?->second_name === 'Ivanov', amount: 1);
|
||||
|
||||
echo '[' . ++$action . "] Readed the record from the database by filter\n";
|
||||
echo '[' . ++$action . "] Read the record from the database by filter\n";
|
||||
|
||||
try {
|
||||
echo '[' . ++$action . '][' . ++$test . '][' . (gettype($record_readed_filter) === 'array' ? 'SUCCESS' : 'FAIL') . '][type of returned value] Expected: "array". Actual: "' . gettype($record_readed_filter) . "\"\n";
|
||||
|
@ -285,22 +285,22 @@ try {
|
|||
*
|
||||
* @see https://www.php.net/manual/en/language.types.float.php#113703
|
||||
*/
|
||||
echo '[' . $action . '][' . ++$test . '][' . (round($record_readed_filter[0]->motivation, 2) === round(2.2250738585072E-308, 2) ? 'SUCCESS' : 'FAIL') . ']["motivation"] Expected: "2.2250738585072E-308" (double). Actual: "' . $record_readed_filter[0]->motivation . '" (' . gettype($record_readed_filter[0]->motivation) . ")\n";
|
||||
echo '[' . $action . '][' . ++$test . '][' . ($record_readed_filter[0]->reputation === (int) -9223372036854775808 ? 'SUCCESS' : 'FAIL') . ']["reputation"] Expected: "-9223372036854775808" (integer). Actual: "' . $record_readed_filter[0]->reputation . '" (' . gettype($record_readed_filter[0]->reputation) . ")\n";
|
||||
echo '[' . $action . '][' . ++$test . '][' . (round($record_read_second[0]->motivation, 2) === round(2.2250738585072E-308, 2) ? 'SUCCESS' : 'FAIL') . ']["motivation"] Expected: "2.2250738585072E-308" (double). Actual: "' . $record_read_second[0]->motivation . '" (' . gettype($record_read_second[0]->motivation) . ")\n";
|
||||
echo '[' . $action . '][' . ++$test . '][' . ($record_read_second[0]->reputation === (int) -9223372036854775808 ? 'SUCCESS' : 'FAIL') . ']["reputation"] Expected: "-9223372036854775808" (integer). Actual: "' . $record_read_second[0]->reputation . '" (' . gettype($record_read_second[0]->reputation) . ")\n";
|
||||
}
|
||||
|
||||
echo '[' . $action . "] The readed record by filter checks have been completed\n";
|
||||
echo '[' . $action . "] The read record by filter checks have been completed\n";
|
||||
} catch (exception $e) {
|
||||
echo '[' . $action . "][WARNING] The readed record by filter checks have been completed with errors\n";
|
||||
echo '[' . $action . "][WARNING] The read record by filter checks have been completed with errors\n";
|
||||
}
|
||||
|
||||
// Reinitializing the counter of tests
|
||||
$test = 0;
|
||||
|
||||
// Reading the record from the database by filter with amount limit
|
||||
$records_readed_filter_amount = $database->read(filter: fn($record) => $record?->age === 24, amount: 1);
|
||||
$records_read_filter_amount = $database->read(filter: fn($record) => $record?->age === 24, amount: 1);
|
||||
|
||||
echo '[' . ++$action . "] Readed the record from the database by filter with amount limit\n";
|
||||
echo '[' . ++$action . "] Read the record from the database by filter with amount limit\n";
|
||||
|
||||
try {
|
||||
echo '[' . ++$action . '][' . ++$test . '][' . (gettype($records_readed_filter_amount) === 'array' ? 'SUCCESS' : 'FAIL') . '][type of returned value] Expected: "array". Actual: "' . gettype($records_readed_filter_amount) . "\"\n";
|
||||
|
@ -315,22 +315,22 @@ try {
|
|||
*
|
||||
* @see https://www.php.net/manual/en/language.types.float.php#113703
|
||||
*/
|
||||
echo '[' . $action . '][' . ++$test . '][' . (round($record_readed_second[0]->motivation, 2) === round(2.2250738585072E-308, 2) ? 'SUCCESS' : 'FAIL') . ']["motivation"] Expected: "2.2250738585072E-308" (double). Actual: "' . $record_readed_second[0]->motivation . '" (' . gettype($record_readed_second[0]->motivation) . ")\n";
|
||||
echo '[' . $action . '][' . ++$test . '][' . ($record_readed_second[0]->reputation === (int) -9223372036854775808 ? 'SUCCESS' : 'FAIL') . ']["reputation"] Expected: "-9223372036854775808" (integer). Actual: "' . $record_readed_second[0]->reputation . '" (' . gettype($record_readed_second[0]->reputation) . ")\n";
|
||||
echo '[' . $action . '][' . ++$test . '][' . (round($record_read_second[0]->motivation, 2) === round(2.2250738585072E-308, 2) ? 'SUCCESS' : 'FAIL') . ']["motivation"] Expected: "2.2250738585072E-308" (double). Actual: "' . $record_read_second[0]->motivation . '" (' . gettype($record_read_second[0]->motivation) . ")\n";
|
||||
echo '[' . $action . '][' . ++$test . '][' . ($record_read_second[0]->reputation === (int) -9223372036854775808 ? 'SUCCESS' : 'FAIL') . ']["reputation"] Expected: "-9223372036854775808" (integer). Actual: "' . $record_read_second[0]->reputation . '" (' . gettype($record_read_second[0]->reputation) . ")\n";
|
||||
}
|
||||
|
||||
echo '[' . $action . "] The readed record by filter with amount limit checks have been completed\n";
|
||||
echo '[' . $action . "] The read record by filter with amount limit checks have been completed\n";
|
||||
} catch (exception $e) {
|
||||
echo '[' . $action . "][WARNING] The readed record by filter with amount limit checks have been completed with errors\n";
|
||||
echo '[' . $action . "][WARNING] The read record by filter with amount limit checks have been completed with errors\n";
|
||||
}
|
||||
|
||||
// Reinitializing the counter of tests
|
||||
$test = 0;
|
||||
|
||||
// Reading the record from the database by filter with amount limit and offset
|
||||
$records_readed_filter_amount_offset = $database->read(filter: fn($record) => $record?->age === 24, amount: 1, offset: 1);
|
||||
$records_read_filter_amount_offset = $database->read(filter: fn($record) => $record?->age === 24, amount: 1, offset: 1);
|
||||
|
||||
echo '[' . ++$action . "] Readed the record from the database by filter with amount limit and offset\n";
|
||||
echo '[' . ++$action . "] Read the record from the database by filter with amount limit and offset\n";
|
||||
|
||||
try {
|
||||
echo '[' . ++$action . '][' . ++$test . '][' . (gettype($records_readed_filter_amount_offset) === 'array' ? 'SUCCESS' : 'FAIL') . '][type of returned value] Expected: "array". Actual: "' . gettype($records_readed_filter_amount_offset) . "\"\n";
|
||||
|
@ -345,27 +345,27 @@ try {
|
|||
*
|
||||
* @see https://www.php.net/manual/en/language.types.float.php#113703
|
||||
*/
|
||||
echo '[' . $action . '][' . ++$test . '][' . (round($records_readed_filter_amount_offset[0]->motivation, 2) === round(2.2250738585072E-308, 2) ? 'SUCCESS' : 'FAIL') . ']["motivation"] Expected: "2.2250738585072E-308" (double). Actual: "' . $records_readed_filter_amount_offset[0]->motivation . '" (' . gettype($records_readed_filter_amount_offset[0]->motivation) . ")\n";
|
||||
echo '[' . $action . '][' . ++$test . '][' . ($records_readed_filter_amount_offset[0]->reputation === (int) -9223372036854775808 ? 'SUCCESS' : 'FAIL') . ']["reputation"] Expected: "-9223372036854775808" (integer). Actual: "' . $records_readed_filter_amount_offset[0]->reputation . '" (' . gettype($records_readed_filter_amount_offset[0]->reputation) . ")\n";
|
||||
echo '[' . $action . '][' . ++$test . '][' . (round($record_read_second[0]->motivation, 2) === round(2.2250738585072E-308, 2) ? 'SUCCESS' : 'FAIL') . ']["motivation"] Expected: "2.2250738585072E-308" (double). Actual: "' . $record_read_second[0]->motivation . '" (' . gettype($record_read_second[0]->motivation) . ")\n";
|
||||
echo '[' . $action . '][' . ++$test . '][' . ($record_read_second[0]->reputation === (int) -9223372036854775808 ? 'SUCCESS' : 'FAIL') . ']["reputation"] Expected: "-9223372036854775808" (integer). Actual: "' . $record_read_second[0]->reputation . '" (' . gettype($record_read_second[0]->reputation) . ")\n";
|
||||
}
|
||||
|
||||
echo '[' . $action . "] The readed record by filter with amount limit and offset checks have been completed\n";
|
||||
echo '[' . $action . "] The read record by filter with amount limit and offset checks have been completed\n";
|
||||
} catch (exception $e) {
|
||||
echo '[' . $action . "][WARNING] The readed record by filter with amount limit and offset checks have been completed with errors\n";
|
||||
echo '[' . $action . "][WARNING] The read record by filter with amount limit and offset checks have been completed with errors\n";
|
||||
}
|
||||
|
||||
// Reinitializing the counter of tests
|
||||
$test = 0;
|
||||
|
||||
// Deleting the record in the database by filter
|
||||
$records_readed_filter_delete = $database->read(filter: fn($record) => $record?->name === 'Ivan', delete: true, amount: 1);
|
||||
$records_read_filter_delete = $database->read(filter: fn($record) => $record?->name === 'Ivan', delete: true, amount: 1);
|
||||
|
||||
echo '[' . ++$action . "] Deleted the record from the database by filter\n";
|
||||
|
||||
// Reading records from the database after deleting
|
||||
$records_readed_filter_delete_readed = $database->read(amount: 100);
|
||||
$records_read_filter_delete_read = $database->read(amount: 100);
|
||||
|
||||
echo '[' . ++$action . "] Readed records from the database after deleting the record\n";
|
||||
echo '[' . ++$action . "] Read records from the database after deleting the record\n";
|
||||
|
||||
try {
|
||||
echo '[' . ++$action . '][' . ++$test . '][' . (gettype($records_readed_filter_delete) === 'array' ? 'SUCCESS' : 'FAIL') . '][type of returned value] Expected: "array". Actual: "' . gettype($records_readed_filter_delete) . "\"\n";
|
||||
|
@ -393,14 +393,14 @@ try {
|
|||
$test = 0;
|
||||
|
||||
// Updating the record in the database
|
||||
$records_readed_filter_update = $database->read(filter: fn($record) => $record?->name === 'Margarita', update: fn(&$record) => $record->height += 0.5, amount: 1);
|
||||
$records_read_filter_update = $database->read(filter: fn($record) => $record?->name === 'Margarita', update: fn(&$record) => $record->height += 0.5, amount: 1);
|
||||
|
||||
echo '[' . ++$action . "] Updated the record in the database by filter\n";
|
||||
|
||||
// Reading records from the database after updating
|
||||
$records_readed_filter_update_readed = $database->read(amount: 100);
|
||||
$records_read_filter_update_read = $database->read(amount: 100);
|
||||
|
||||
echo '[' . ++$action . "] Readed records from the database after updating the record\n";
|
||||
echo '[' . ++$action . "] Read records from the database after updating the record\n";
|
||||
|
||||
try {
|
||||
echo '[' . ++$action . '][' . ++$test . '][' . (gettype($records_readed_filter_update) === 'array' ? 'SUCCESS' : 'FAIL') . '][type of returned value] Expected: "array". Actual: "' . gettype($records_readed_filter_update) . "\"\n";
|
||||
|
@ -416,8 +416,8 @@ try {
|
|||
*
|
||||
* @see https://www.php.net/manual/en/language.types.float.php#113703
|
||||
*/
|
||||
echo '[' . $action . '][' . ++$test . '][' . (round($records_readed_filter_update[0]->motivation, 2) === round(163, 2) ? 'SUCCESS' : 'FAIL') . ']["motivation"] Expected: "163" (double). Actual: "' . $records_readed_filter_update[0]->motivation . '" (' . gettype($records_readed_filter_update[0]->motivation) . ")\n";
|
||||
echo '[' . $action . '][' . ++$test . '][' . ($records_readed_filter_update[0]->reputation === (int) 9223372036854775807 ? 'SUCCESS' : 'FAIL') . ']["reputation"] Expected: "9223372036854775807" (integer). Actual: "' . $records_readed_filter_update[0]->reputation . '" (' . gettype($records_readed_filter_update[0]->reputation) . ")\n";
|
||||
echo '[' . $action . '][' . ++$test . '][' . (round($record_read_second[0]->motivation, 2) === round(2.2250738585072E-308, 2) ? 'SUCCESS' : 'FAIL') . ']["motivation"] Expected: "2.2250738585072E-308" (double). Actual: "' . $record_read_second[0]->motivation . '" (' . gettype($record_read_second[0]->motivation) . ")\n";
|
||||
echo '[' . $action . '][' . ++$test . '][' . ($record_read_second[0]->reputation === (int) -9223372036854775808 ? 'SUCCESS' : 'FAIL') . ']["reputation"] Expected: "-9223372036854775808" (integer). Actual: "' . $record_read_second[0]->reputation . '" (' . gettype($record_read_second[0]->reputation) . ")\n";
|
||||
}
|
||||
|
||||
echo '[' . $action . "] The updated record by filter checks have been completed\n";
|
||||
|
|
Loading…
Reference in New Issue