Commit Graph
100 Commits
Author SHA1 Message Date
kj 5f3fc16735 feat(router): add error boundary with exception callback 2026-09-07 17:04:20 -03:00
kj 146aed0db8 test(synapsis): cover named argument injection in resolve 2026-09-07 16:18:09 -03:00
kj 9dbfd7da8e feat: add named parameter injection to resolve() 2026-09-07 16:17:34 -03:00
kj 3e7c367182 test(integration): cover query failure state cleanup 2026-09-05 16:47:39 -03:00
kj 25db49f4bd fix(model): reset query state when database query fails 2026-09-05 16:45:02 -03:00
kj 9cb41d51d0 fix(model): use RANDOM() for non-MySQL databases in orderBy 2026-09-05 16:37:37 -03:00
kj d0c4b3c503 feat(test): add multi-engine integration matrix 2026-09-05 16:15:28 -03:00
kj 48d3ed6b3f docs(makefile): document develop/master publish workflow 2026-09-05 14:17:14 -03:00
kj d9ac4c3f14 build: add Makefile with test and publish targets 2026-09-05 14:09:40 -03:00
kj d594aa3ec1 test(unit): Add Neuron and Validator regression tests 2026-09-05 13:43:35 -03:00
kj bf03e10b54 test(bootstrap): add smoke test for autoload and test DB 2026-09-05 13:25:47 -03:00
kj f1bda46723 test(factories): add abstract Factory base class 2026-09-05 12:37:41 -03:00
kj dbbde42fe7 test: add base TestCase and bootstrap for in-memory SQLite 2026-09-05 12:33:20 -03:00
kj 7494ec5fda chore: add PHPUnit configuration and unit tests directory 2026-09-05 12:11:08 -03:00
kj c0e5cf79d0 build: Add composer setup with phpunit and faker 2026-09-05 12:02:34 -03:00
kj a4fcd21492 chore: add .gitignore for PHP project 2026-09-05 11:50:27 -03:00
kj a4611e8718 chore(src): rename .keep files to .gitkeep
Use the conventional `.gitkeep` filename so Git tooling recognizes
these placeholder files by default.
2026-09-05 11:35:04 -03:00
kj 9027f36748 refactor(model): use reflection for search field discovery 2026-09-05 00:39:16 -03:00
kj 2ae9ef39f3 feat(request): negotiate error response frmat based on Accept header 2026-09-03 18:23:42 -03:00
kj ee0db0307e docs(Validator): Expand documentation with complete rules reference 2026-09-03 18:22:52 -03:00
kj 44cbe6bbdc feat(validator): add file upload validation rules 2026-09-03 18:07:54 -03:00
kj 31728af351 docs: Clarify phpdoc 2026-09-03 16:12:54 -03:00
kj 4845d14ef5 chore(validator): suppress PHPCS rule for non-camel-case method 2026-09-03 15:59:48 -03:00
kj aca4e732ed feat(validation): Add human-readable validation error messages 2026-09-03 15:59:36 -03:00
kj f475c9125f feat(Validator): Add confirmed, required_with, and required_if rules 2026-09-03 15:03:28 -03:00
kj 4fe7314389 feat(Validator): Add regex and date validation methods 2026-09-03 14:42:15 -03:00
kj 1f366830bc feat(validation): add type and size-based validation methods
Add string, array, min, max, between, and size validators to the
Validator class. A private measure helper centralizes size semantics
for numbers (value), strings (length), and arrays (element count).
2026-09-03 14:35:02 -03:00
kj 15df7c8d96 refactor(Validator): improve rule argument parsing 2026-09-03 14:20:02 -03:00
kj b8dd1fd0f6 refactor(model): remove default 'id' from dbIgnoreSave list 2026-06-19 16:08:29 -03:00
kj 83c80bd4ab fix(model): prevent overwriting primary key on save 2026-06-19 15:34:47 -03:00
kj b13c07d3c4 fix(model): Remove the NULL check in the attribute loop 2026-06-19 15:29:51 -03:00
kj b95747bfe0 feat(model): add type casting for DateTime 2026-06-19 15:14:25 -03:00
kj 01c5eceeb4 refactor(model): Use match expression for PDO type detection 2026-06-19 14:52:25 -03:00
kj ee9c109ed9 fix(model): improve PDO parameter binding and update logic 2026-06-19 14:47:01 -03:00
kj 7eed69725d refactor(model): extract type casting logic into helper methods 2026-06-19 14:46:30 -03:00
kj e37035eed8 fix(model): support both backed and unit enums 2026-06-13 16:48:07 -03:00
kj 5312e5060e fix(model): reset dbQueryVariables before update and insert
Clear the static $dbQueryVariables array before performing update
and insert operations to prevent data leakage between queries.
2026-06-13 15:30:45 -03:00
kj 3c9db3ac53 refactor(neuron): remove return type hint from __get method 2026-06-05 13:28:19 -03:00
kj c5a4967ae4 refactor: Extract autoloader to dedicated file 2026-02-10 14:09:13 -03:00
kj c0b9f3851a chore(router): Remove redundant middleware count check 2026-02-02 10:23:48 -03:00
kj 78e199e300 feat(router): Introduce withMiddleware() for scoped middlewares 2026-02-01 08:25:54 -03:00
kj 8cd5e114dd refactor(router): Align type hint for optional parameter in docblock 2026-02-01 07:47:04 -03:00
kj ce03bdb27d fix(model): Fix postgresql search. 2025-10-27 15:16:54 -03:00
kj b24598b118 fix(sqlite): Correct base table for RIGHT JOIN conversion 2025-10-27 15:15:45 -03:00
kj 5019b89cc0 docs(readme): Update PostgreSQL compatibility status 2025-10-27 10:27:18 -03:00
kj d030e8d30e refactor(model)!: Allow groupBy to accept multiple args instead an array 2025-10-27 10:26:12 -03:00
kj b2672ad92f fix(model): Remove ON clause from cross join 2025-10-27 10:24:25 -03:00
kj 4c57770b43 refactor(model): Remove backticks from column names 2025-10-27 10:23:55 -03:00
kj 8e84450f95 fix(query): Adjust LIMIT OFFSET clause syntax 2025-10-27 10:23:31 -03:00
kj ece32b9bbe docs(readme): Update supported where clauses 2025-10-27 06:50:13 -03:00
kj a5cf9d239d refactor(model): Fix typo on WHERE EXISTS/NOT EXISTS methods 2025-10-27 06:46:17 -03:00
kj b9509c49ed refactor(model): Add string type hint to select columns 2025-10-21 16:26:39 -03:00
kj 6e433b4d06 feat(query-builder): Implement advanced WHERE and new JOIN clauses 2025-10-17 13:13:01 -03:00
kj 892b3614ec refactor(db): Detect DB type using PDO driver name 2025-10-17 13:12:02 -03:00
kj a0b544eae5 refactor(Model): Rename bindValue to bind and make public 2025-10-17 11:55:37 -03:00
kj 20fd78ab53 docs(Request): Remove param comment 2025-10-16 20:51:52 -03:00
kj f5411daaa5 Translate comments to English 2025-10-16 20:02:54 -03:00
kj 7e7ec68fd7 refactor(router): Use Neuron object for route parameters 2025-10-16 12:04:05 -03:00
kj ac9a661bc0 fix(htaccess): Block direct access to vendor and src folders 2025-10-11 12:15:15 -03:00
kj c8d7b69367 feat(bootstrap): Introduce Libs\Loader for directory loading 2025-10-11 10:44:20 -03:00
kj 7f62e06ff9 docs: Improve documentation and translate comments to English 2025-10-10 21:18:22 -03:00
kj 674c9d5ff4 fix(validator): Improve filter_var robustness in validation methods 2025-10-10 21:17:41 -03:00
kj 2f50532e13 refactor(Model): Type hint setNull variadic arguments 2025-10-10 21:06:11 -03:00
kj b41514a491 fix(di): Improve parameter resolution and validation 2025-10-10 19:15:07 -03:00
kj a1a15f492c refactor!: add Synapsis for dependency resolution and injection
- Remove Middleware class and custom callback handling logic.
- Implement Synapsis as a dependency injection container for automatic
resolution.
- Refactor Router to use Synapsis for process route callbacks and not found
handler.
- Update Request to remove middleware-specific properties and use
Router::$currentParams for path parameters.
2025-10-10 17:44:49 -03:00
kj b19e7d8789 Remove a forgotten debug line. 2025-09-07 18:52:33 -03:00
kj 4dfdb52519 Remove unnecessary and really never-used tableSufix property. 2025-09-07 15:25:48 -03:00
kj b0891885f9 BREAKING CHANGE: Make select, from, and setNull methods variadic. 2025-09-07 15:20:06 -03:00
kj b282d5479f Convert object/database naming conventions.
Adhere to PSR-12 by converting object properties to "lowerCamelCase" for objects
and "snake_case" for database interactions.

Backward compatibility is maintained: object properties already using
"snake_case" will continue to work without issue.
2025-09-07 15:01:45 -03:00
kj c9f467345b BREAKING CHANGE: Adhere to PSR-12 coding standards.
- Model: where_in method was renamed as whereIn.
2025-09-07 11:07:07 -03:00
kj 0f46848d15 Remove the predefined 'id' property.
This property is not necessary and gives less flexibility.
2025-08-15 14:51:16 -03:00
kj b2cb8d6883 Allow statically call beginTransaction, rollback and commit methods. 2025-07-15 18:12:41 -03:00
kj e9126e7cde Fix: Implicitly marking parameter as nullable is deprecated.
PHP 8.4 deprecation.
2025-06-07 14:27:47 -03:00
kj 7169d2cae3 Fix: render is not using the defined extension. 2025-06-07 14:17:11 -03:00
kj 66b2bc0d91 Remove unnecesary php close. 2025-06-07 14:14:16 -03:00
kj c8ab2aa2cc Remove unnecesary echo. 2025-05-20 12:49:20 -03:00
kj 1e302a9ea7 BREAKING CHANGE: Change unnecesary false return type. 2025-04-19 15:44:16 -03:00
kj d0d0d4dc76 Verify if a valid http query string after run parse_str. 2025-02-20 08:22:47 -03:00
kj 595e9c1316 Save body request as a property. 2025-02-20 08:22:37 -03:00
kj 45abea5301 Add delete request params. 2025-02-20 06:28:03 -03:00
kj d441f001ec Add type of items on array on dockblock for "all" method. 2025-02-03 16:04:39 -03:00
kj 19da122e05 Add type of items on array on dockblock for get method. 2025-02-03 16:02:27 -03:00
kj 1a0164c8ed Change static methods to non-static and made onInvalid public. 2024-10-30 11:53:44 -04:00
kj ad9f8ec67d Remove unnecesary brackets. 2024-10-29 19:12:25 -04:00
kj 31c5c63952 Remove innecesary return. 2024-10-29 19:10:47 -04:00
kj 6aef212350 Fix className not returning the classname in the right format. 2024-10-25 10:40:57 -04:00
kj c600688725 Improve return array dockblocks. 2024-09-23 18:09:38 -04:00
kj 3e27b1b7af Allow null on enum properties. 2024-09-23 15:06:44 -04:00
kj 73b7b8f72a Change required valitator to not allow empty values and add exists.
The exists validator do the same as the old required.
2024-09-18 14:33:33 -04:00
kj 7baad428ec Refactor request library. 2024-09-08 14:43:56 -04:00
kj 3d2a607768 Fix where_in is wiping previous where/and/or.
For now, works as an AND, but maybe later, same as where will exists
new methods: AndIn and OrIN.
2024-08-30 16:26:03 -04:00
kj df424ffab5 Model properties now can be typed as enums.
With this PHP 8.0 support is dropped.
2024-08-27 19:01:02 -04:00
kj daf7250882 Catch and verify put and patch input values. 2024-08-13 10:22:44 -04:00
kj 05cd83fd10 Remove unused variable. 2024-07-31 03:29:49 -04:00
kj 6b470a181d Fix: Remove unnecesary parameter. 2024-07-10 09:06:51 -04:00
kj 7beb161d2b Ensure db is in transaction to commit or rollback. 2024-06-04 07:18:30 -04:00
kj 701caae7eb Change route method to static. 2024-05-29 13:24:20 -04:00
kj 100bdfe006 Change private method to protected instead. 2024-05-28 22:27:20 -04:00
kj f1b79fdbc0 Add http code 422 on verification failed. 2024-05-25 17:41:33 -04:00
kj 406f9a10a1 Add head comment. 2024-05-25 17:19:08 -04:00