You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Refactor SQL create table generator to lower complexity
* Getters converted to Classes
Getter classes are registered with the Factory and become methods you can run on the Factory.
The existing Getters trait for ActiveRecord models scans Factory for Getters and attached them to itself as well providing $className::$methodName() as static calls while using a Factory backend.
* Broke up Records controller and Media controller into individual classes for each Endpoint
* Lower complexity and update the readme.
* Type hints and null hints support instead of notnull attribute
* PHPDoc pass
This collection of classes contains my favorite building blocks for developing websites with PHP and they have an impressive track record with hundreds of currently active websites using one version or another of the classes in this framework. While they were originally written years ago they are all PSR compatible and support modern practices out of the box.
35
+
Divergence is a full-featured ActiveRecord framework built on a reflection-driven DTO-style backend. It is designed for performance, and it backs that up with benchmarks. It gives developers a fast procedural-global path for getting real work done, while its internal abstractions stay disciplined and modern. Divergence follows PSR-4, PSR-7, and PSR-15 wherever doing so strengthens the framework instead of turning it into ceremony.
37
36
38
37
Unit testing the code base and providing code coverage is a primary goal of this project.
39
38
@@ -44,7 +43,7 @@ Unit testing the code base and providing code coverage is a primary goal of this
44
43
* Declare relationships with static arrays or PHP 8 attributes (`#[Relation(...)]`).
45
44
* Built in support for relationships and object versioning.
46
45
* Speed up prototyping and automate new deployments by automatically creating tables based on your models when none are found.
47
-
* Built in support for MySQL and SQLite.
46
+
* Built in support for MySQL, PostgreSQL, and SQLite.
48
47
49
48
* Routing
50
49
* Simpler, faster, tree based routing system.
@@ -55,6 +54,7 @@ Unit testing the code base and providing code coverage is a primary goal of this
55
54
* Pre-made REST API controllers allow you to build APIs rapidly.
56
55
* 100% Unit test coverage for filters, sorters, and conditions.
57
56
* Build HTTP APIs in minutes by extending `RecordsRequestHandler` and setting the one config variable: the name of your model class.
57
+
*`RecordsRequestHandler` and `MediaRequestHandler` route response-producing actions through focused endpoint classes instead of one large handler method pile.
58
58
* Use a pre-made security trait with RecordsRequestHandler or extend it and write in your own permissions.
59
59
* Standard permissions interface allows reuse of permission traits from one model to another.
60
60
@@ -85,8 +85,14 @@ composer test
85
85
# MySQL suite only
86
86
composer test:mysql
87
87
88
+
# PostgreSQL suite only
89
+
composer test:pgsql
90
+
88
91
# SQLite in-memory suite only
89
92
composer test:sqlite
93
+
94
+
# Run merged coverage across MySQL, PostgreSQL, and SQLite
0 commit comments