Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
233 commits
Select commit Hold shift + click to select a range
8e34ce8
Add action that imports init data of a package from a database tables…
lucaslaurent04 Mar 4, 2024
c643602
Refacto get import config and throw errors if problem reading config
lucaslaurent04 Mar 4, 2024
004ce79
harmonise code
lucaslaurent04 Mar 4, 2024
15486b0
Add multiply and divide mappers
lucaslaurent04 Mar 4, 2024
7b89122
Add computed mapper
lucaslaurent04 Mar 6, 2024
f66d656
fixed ondelete o2m reset to null
cedricfrancoys Mar 10, 2024
2b7de1b
replaced PhpParser with improved var_export
cedricfrancoys Mar 10, 2024
1ea3815
updated
cedricfrancoys Mar 10, 2024
b223535
minor
cedricfrancoys Mar 10, 2024
ee28772
added support for views inheritance
cedricfrancoys Mar 10, 2024
36f7388
added
cedricfrancoys Mar 10, 2024
99216c5
updated
cedricfrancoys Mar 12, 2024
8019299
added support for numeric field ordering
cedricfrancoys Mar 12, 2024
2a72044
fixed index for injection with 'after'
cedricfrancoys Mar 12, 2024
aae00c2
updated section id "user_details" to "section.details"
cedricfrancoys Mar 12, 2024
b75d44b
updates
cedricfrancoys Mar 12, 2024
ccda46e
updates
cedricfrancoys Mar 12, 2024
56909e5
updates
cedricfrancoys Mar 12, 2024
52fed20
action refacto to be extendable
lucaslaurent04 Mar 14, 2024
e8a1118
added examples
cedricfrancoys Mar 15, 2024
c352de3
updated user fillname syntax to Firstname LASTNAME
cedricfrancoys Mar 15, 2024
03d57e7
added 'search' property
cedricfrancoys Mar 15, 2024
ed5012a
renamed default users
cedricfrancoys Mar 15, 2024
d108252
comments
cedricfrancoys Mar 15, 2024
3ca108f
updated
cedricfrancoys Mar 15, 2024
b4201fc
fixed tests
cedricfrancoys Mar 15, 2024
33dac2f
fixed tests
cedricfrancoys Mar 15, 2024
756f04d
Merge pull request #98 from lucaslaurent04/feature/import-old-databas…
cedricfrancoys Mar 15, 2024
4ee973d
added fetch[...] as abstract methods
cedricfrancoys Mar 15, 2024
d7e6ffe
Merge branch 'dev-2.0' of https://github.com/equalframework/equal int…
cedricfrancoys Mar 15, 2024
e506c63
reordered functions + fixed 'field' access (when missing)
cedricfrancoys Mar 15, 2024
84a6c65
fixed rendering
cedricfrancoys Mar 15, 2024
0c5e7fb
replaced onupdate[] with dependencies
cedricfrancoys Mar 15, 2024
7444c9c
disabled error output
cedricfrancoys Mar 15, 2024
0cc0400
removed unused var
cedricfrancoys Mar 15, 2024
ee7433b
updated
cedricfrancoys Mar 15, 2024
84be969
updated
cedricfrancoys Mar 15, 2024
2e54ad8
updated
cedricfrancoys Mar 15, 2024
6daa0ba
updated
cedricfrancoys Mar 15, 2024
e26f40f
updated
cedricfrancoys Mar 15, 2024
cb6bde3
updated
cedricfrancoys Mar 15, 2024
d77033b
updated
cedricfrancoys Mar 15, 2024
d54163a
updated
cedricfrancoys Mar 15, 2024
c666cc0
updated
cedricfrancoys Mar 15, 2024
73a8878
updated
cedricfrancoys Mar 15, 2024
e3c1eed
updated
cedricfrancoys Mar 15, 2024
7915af5
updated
cedricfrancoys Mar 15, 2024
77594f4
updated
cedricfrancoys Mar 15, 2024
333fea7
updated
cedricfrancoys Mar 15, 2024
3bb2dde
updated
cedricfrancoys Mar 15, 2024
a1291b1
updated
cedricfrancoys Mar 15, 2024
0fca0ec
added support for default context, disabling menu search, & redirecti…
cedricfrancoys Mar 16, 2024
9d51ad7
added support for redirect_to URL param
cedricfrancoys Mar 16, 2024
9bbe296
refactored bootstrap exceptions handling
cedricfrancoys Mar 16, 2024
7fb5958
set E_NOTICE, E_STRICT & E_DEPRECATED as info level
cedricfrancoys Mar 16, 2024
bf15c78
comments
cedricfrancoys Mar 16, 2024
5a040a2
added support for non-injectable args
cedricfrancoys Mar 16, 2024
e5e54b2
splitted DB connection service (DBConnector) from connection factory …
cedricfrancoys Mar 16, 2024
54bc99d
moved signatures & comments to DBManipulator class
cedricfrancoys Mar 16, 2024
0d98c48
minor
cedricfrancoys Mar 16, 2024
6a822aa
replaced DBConnection with DBConnector
cedricfrancoys Mar 16, 2024
1ac4645
updated
cedricfrancoys Mar 16, 2024
77b7129
comments
cedricfrancoys Mar 16, 2024
fe38084
replaced DBConnection with DBConnector
cedricfrancoys Mar 16, 2024
b170a79
fix
cedricfrancoys Mar 16, 2024
04a140c
minor + added EQ_REPORT_AAA & EQ_REPORT_NET
cedricfrancoys Mar 17, 2024
1d77b85
added support for EQ_REPORT_SYSTEM
cedricfrancoys Mar 17, 2024
a10c069
prevented deprecation notice + injection of $this for Container as co…
cedricfrancoys Mar 17, 2024
908e796
added support for AAA & NET
cedricfrancoys Mar 17, 2024
b117e79
added support to handle NET & AAA as regular logs
cedricfrancoys Mar 17, 2024
56a60c8
set visibility as protected
cedricfrancoys Mar 17, 2024
865dfae
fixed constants()
cedricfrancoys Mar 17, 2024
9117799
updated
cedricfrancoys Mar 17, 2024
219db4f
set method log as INFO
cedricfrancoys Mar 17, 2024
9fa3e55
replaced trigger_error with $reporter methods
cedricfrancoys Mar 17, 2024
4b10a28
fixed trace depth for method calls
cedricfrancoys Mar 17, 2024
765d452
added comments
cedricfrancoys Mar 17, 2024
dbf6e84
removed test app (mistake)
cedricfrancoys Mar 17, 2024
e9c8893
added error flag in log
cedricfrancoys Mar 17, 2024
43b459b
added support for sorting with m2o targeting a name as alias
cedricfrancoys Mar 18, 2024
3a5a89b
Update .gitignore
AlexisVS Mar 19, 2024
fa16169
Merge pull request #1 from AlexisVS/AlexisVS-patch-for-jetbrains-app
AlexisVS Mar 19, 2024
98b6574
added support for atomic increment (fetchAndAdd)
cedricfrancoys Mar 20, 2024
a47e66f
fix (minor)
cedricfrancoys Mar 20, 2024
2ce5220
description
cedricfrancoys Mar 21, 2024
9dfe88e
updated
cedricfrancoys Mar 21, 2024
780e0a8
updates
cedricfrancoys Mar 21, 2024
0d2e5c4
Merge pull request #101 from AlexisVS/dev-2.0
cedricfrancoys Mar 23, 2024
210a4f6
updated
cedricfrancoys Mar 25, 2024
6017501
Merge branch 'dev-2.0' of https://github.com/equalframework/equal int…
cedricfrancoys Mar 25, 2024
0a2ecf5
updated
cedricfrancoys Mar 26, 2024
7d02761
updated
cedricfrancoys Mar 26, 2024
18256c6
updated
cedricfrancoys Mar 26, 2024
3205a04
updated
cedricfrancoys Mar 26, 2024
eba75f2
updated
cedricfrancoys Mar 26, 2024
40618c5
updated
cedricfrancoys Mar 27, 2024
47e0617
renamed dependencies to dependents
cedricfrancoys Mar 27, 2024
600b3a0
Add empty file checkbox to console.php page
lucaslaurent04 Mar 28, 2024
91e993f
updated
cedricfrancoys Mar 28, 2024
f4c8c56
updated
cedricfrancoys Mar 28, 2024
fa8ed6f
description
cedricfrancoys Mar 29, 2024
0fa84e0
updated usernames
cedricfrancoys Mar 29, 2024
bb379fa
comments + minor changes
cedricfrancoys Apr 1, 2024
3310ef8
added result_type as systematic property
cedricfrancoys Apr 1, 2024
64788ea
changes extension to json and replaced `or` with `erd`
cedricfrancoys Apr 1, 2024
b77296d
minor
cedricfrancoys Apr 1, 2024
1e9073b
minor syntax change
cedricfrancoys Apr 1, 2024
da65c77
description
cedricfrancoys Apr 1, 2024
a9ec8b9
changed `equml` to json` and `or` to `erd`
cedricfrancoys Apr 1, 2024
a485b82
updated groups and users names for easier identification
cedricfrancoys Apr 1, 2024
5dce496
added
cedricfrancoys Apr 1, 2024
1926579
refactored handling for reading 'dot' fields
cedricfrancoys Apr 1, 2024
347d224
comments
cedricfrancoys Apr 1, 2024
c614c37
fixed condition
cedricfrancoys Apr 1, 2024
c211546
comments
cedricfrancoys Apr 1, 2024
04650b8
comments
cedricfrancoys Apr 1, 2024
624deb8
fixed missing `break` statements
cedricfrancoys Apr 1, 2024
7d18961
description
cedricfrancoys Apr 1, 2024
c6c28ac
comments
cedricfrancoys Apr 1, 2024
be3df89
added support for type check (constraint)
cedricfrancoys Apr 1, 2024
c93c6f7
fixed conditions tests
cedricfrancoys Apr 1, 2024
6dbe330
fixed dependencies namespace
cedricfrancoys Apr 1, 2024
7bacf26
syntax
cedricfrancoys Apr 1, 2024
b68b897
fixed missing file and line for exceptions
cedricfrancoys Apr 1, 2024
1ea95d6
syntax
cedricfrancoys Apr 1, 2024
ee2d625
minor
cedricfrancoys Apr 1, 2024
b185f4f
refactored `::validate()` to use `getField()` and `getConstraints()`
cedricfrancoys Apr 1, 2024
4489964
description
cedricfrancoys Apr 1, 2024
ea87fb4
comments
cedricfrancoys Apr 1, 2024
fbcb9fb
Merge pull request #107 from lucaslaurent04/feature/console-empty-file
cedricfrancoys Apr 1, 2024
e967d49
Handle view extends remove for list view with a root items field
lucaslaurent04 Apr 2, 2024
85b9305
Handle maybe not set variable
lucaslaurent04 Apr 2, 2024
e9fbb23
fixed support for computed fields
cedricfrancoys Apr 2, 2024
c9575b7
Merge branch 'dev-2.0' of https://github.com/equalframework/equal int…
cedricfrancoys Apr 2, 2024
296e7a5
added for testing purpose
cedricfrancoys Apr 2, 2024
6fb2c7d
description
cedricfrancoys Apr 2, 2024
d45da2a
fixed callonce stack + refactored support for dependents property
cedricfrancoys Apr 2, 2024
dd2dfd1
added
cedricfrancoys Apr 2, 2024
7d2af3d
added check on view type
cedricfrancoys Apr 3, 2024
f17f705
added missing update for dependents
cedricfrancoys Apr 3, 2024
e0ffcbf
updated
cedricfrancoys Apr 4, 2024
ddb7f02
fixed view filename
cedricfrancoys Apr 4, 2024
3db482c
updated
cedricfrancoys Apr 4, 2024
093532c
added filter for recomputing non-stored computed fields
cedricfrancoys Apr 4, 2024
6e7999e
added filter for recomputing non-stored computed fields
cedricfrancoys Apr 4, 2024
4584444
fixed bool check
cedricfrancoys Apr 4, 2024
732920d
fixed Field object retrieval to support alias fields
cedricfrancoys Apr 4, 2024
74e956f
updated
cedricfrancoys Apr 4, 2024
e530457
updated
cedricfrancoys Apr 4, 2024
e25890b
updated
cedricfrancoys Apr 4, 2024
d55e150
updated
cedricfrancoys Apr 4, 2024
aa38e59
updated
cedricfrancoys Apr 4, 2024
6f1442f
updated
cedricfrancoys Apr 4, 2024
21be4bc
updated
cedricfrancoys Apr 4, 2024
f35de17
updated
cedricfrancoys Apr 4, 2024
696f62d
updated
cedricfrancoys Apr 4, 2024
42981e6
updated
cedricfrancoys Apr 4, 2024
4574830
updated
cedricfrancoys Apr 4, 2024
c384e92
updated
cedricfrancoys Apr 4, 2024
ef0ffcf
updated
cedricfrancoys Apr 5, 2024
c693839
updated
cedricfrancoys Apr 5, 2024
a34d1d4
fixed view types list
cedricfrancoys Apr 5, 2024
a1870f2
Merge pull request #110 from lucaslaurent04/feature/list-view-handle-…
cedricfrancoys Apr 5, 2024
9975dba
fixed elseif cascade
cedricfrancoys Apr 5, 2024
0208c68
removed throwing exception in getModel()
cedricfrancoys Apr 5, 2024
3ae37c9
added test to prevent cyclic dependency
cedricfrancoys Apr 8, 2024
884ed51
Handle update of extended list view
lucaslaurent04 Apr 8, 2024
e5f6ee4
Merge pull request #113 from lucaslaurent04/feature/handle-extends-li…
cedricfrancoys Apr 10, 2024
b454c92
added dashboard type
cedricfrancoys Apr 10, 2024
9b9abda
Merge branch 'dev-2.0' of https://github.com/equalframework/equal int…
cedricfrancoys Apr 10, 2024
d9a6be4
splitted FE & BE (improve mem mgmt)
cedricfrancoys Apr 10, 2024
f57d4c8
minor fix & improve
cedricfrancoys Apr 11, 2024
22d08d4
updated
cedricfrancoys Apr 11, 2024
77c98be
updated
cedricfrancoys Apr 11, 2024
bf6488b
updated to handle .erd.json extension
cedricfrancoys Apr 11, 2024
7ebc122
changed to EQ_ constants
cedricfrancoys Apr 11, 2024
1bf0cbe
changed to EQ_ constants
cedricfrancoys Apr 11, 2024
7e30c04
changed to EQ_ constants + minor fix
cedricfrancoys Apr 11, 2024
e016d6e
comments
cedricfrancoys Apr 11, 2024
56d156f
updated log level for SYSTEM + changed to EQ_ constants
cedricfrancoys Apr 11, 2024
406b11e
improved loading & highlighting
cedricfrancoys Apr 15, 2024
c7138d2
upated
cedricfrancoys Apr 15, 2024
ce8f95d
updated
cedricfrancoys Apr 15, 2024
bcc6853
updated
cedricfrancoys Apr 15, 2024
fa283be
updated
cedricfrancoys Apr 15, 2024
fe99a1f
updated
cedricfrancoys Apr 15, 2024
29b8503
updated
cedricfrancoys Apr 15, 2024
a5bc5ef
updated
cedricfrancoys Apr 15, 2024
ab98821
updated
cedricfrancoys Apr 16, 2024
716562b
updated
cedricfrancoys Apr 16, 2024
f2ec315
updated
cedricfrancoys Apr 16, 2024
c1f01e5
updated
cedricfrancoys Apr 16, 2024
86a8f67
updated
cedricfrancoys Apr 16, 2024
3490f76
updated
cedricfrancoys Apr 16, 2024
94aa2e0
updated
cedricfrancoys Apr 16, 2024
9722786
updated
cedricfrancoys Apr 16, 2024
1196ad0
updated
cedricfrancoys Apr 16, 2024
170cabf
updated
cedricfrancoys Apr 16, 2024
3ee3a60
updated
cedricfrancoys Apr 16, 2024
ad69b60
updated
cedricfrancoys Apr 16, 2024
b6c28ca
updated
cedricfrancoys Apr 16, 2024
047ddbc
updated
cedricfrancoys Apr 16, 2024
01027a8
updated
cedricfrancoys Apr 16, 2024
6198eae
updated
cedricfrancoys Apr 16, 2024
a867c19
updated
cedricfrancoys Apr 16, 2024
b86080c
Fix console empty file feature
lucaslaurent04 Apr 17, 2024
fc61c46
updated
cedricfrancoys Apr 17, 2024
873b48a
updated
cedricfrancoys Apr 17, 2024
5368707
updated
cedricfrancoys Apr 17, 2024
0e2ec98
fixed threads with same time being overridden (added mtime)
cedricfrancoys Apr 17, 2024
52ad4ec
removed slashes escape in resulting JSON
cedricfrancoys Apr 17, 2024
2f3c09b
fixed threads with same time being overridden (added mtime)
cedricfrancoys Apr 18, 2024
9b88bca
Merge pull request #114 from lucaslaurent04/bugfix/fix-console-empty-…
cedricfrancoys Apr 18, 2024
e5cc007
changed navigation buttons labels
cedricfrancoys Apr 18, 2024
9344e0d
updated
cedricfrancoys Apr 18, 2024
5461191
updated
cedricfrancoys Apr 18, 2024
50c88fb
updated
cedricfrancoys Apr 18, 2024
67382d5
updated
cedricfrancoys Apr 18, 2024
479dc47
updated
cedricfrancoys Apr 18, 2024
b739bda
updated
cedricfrancoys Apr 18, 2024
acd87b9
updated
cedricfrancoys Apr 19, 2024
9b14de3
updated
cedricfrancoys Apr 19, 2024
fcfc5d4
updated
cedricfrancoys Apr 19, 2024
95750fa
updated
cedricfrancoys Apr 19, 2024
0499196
updated
cedricfrancoys Apr 19, 2024
6d4af48
updated
cedricfrancoys Apr 19, 2024
38be472
updated
cedricfrancoys Apr 19, 2024
ac77dae
updated
cedricfrancoys Apr 19, 2024
49424e2
updated
cedricfrancoys Apr 19, 2024
7a4a3d0
updated
cedricfrancoys Apr 19, 2024
81abb23
updated
cedricfrancoys Apr 19, 2024
cbcc598
updated
cedricfrancoys Apr 19, 2024
8a36c4f
updated
cedricfrancoys Apr 19, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ config/routing/*
composer.phar
composer.lock
.vscode
.idea
public/*
!public/index.php
!public/console.php
Expand Down
4 changes: 2 additions & 2 deletions config/config-example_mysql.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{
"ROUTING_METHOD": "JSON",
"FILE_STORAGE_MODE":"DB",
"DEFAULT_RIGHTS": "QN_R_CREATE | QN_R_READ | QN_R_DELETE | QN_R_WRITE",
"DEBUG_MODE": "QN_MODE_PHP | QN_MODE_ORM | QN_MODE_SQL",
"DEFAULT_RIGHTS": "EQ_R_CREATE | EQ_R_READ | EQ_R_DELETE | EQ_R_WRITE",
"DEBUG_MODE": "EQ_MODE_API | EQ_MODE_PHP | EQ_MODE_ORM | EQ_MODE_SQL",
"DEBUG_LEVEL": "E_ALL | E_ALL",
"DEFAULT_LANG": "en",
"DB_REPLICATION": "NO",
Expand Down
4 changes: 2 additions & 2 deletions config/config-example_sqlsrv.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
"CIPHER_KEY": "xxxxxxxxxxxxxxxxxxxxxxxx",
"ROUTING_METHOD": "JSON",
"FILE_STORAGE_MODE":"DB",
"DEFAULT_RIGHTS": "QN_R_CREATE | QN_R_READ | QN_R_DELETE | QN_R_WRITE",
"DEBUG_MODE": "QN_MODE_PHP | QN_MODE_ORM | QN_MODE_SQL",
"DEFAULT_RIGHTS": "EQ_R_CREATE | EQ_R_READ | EQ_R_DELETE | EQ_R_WRITE",
"DEBUG_MODE": "EQ_MODE_PHP | EQ_MODE_ORM | EQ_MODE_SQL",
"DEBUG_LEVEL": "E_ALL | E_ALL",
"DEFAULT_LANG": "en",
"DB_REPLICATION": "NO",
Expand Down
22 changes: 14 additions & 8 deletions config/schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
},
"DEFAULT_LANG": {
"type": "string",
"description": "The language in which the multilang content must be provided/stored by default (ISO 639-1).",
"description": "The language (ISO 639-1) in which the multilang content must be provided/stored by default.",
"instant": true,
"default": "en"
},
Expand Down Expand Up @@ -50,8 +50,8 @@
"default": 0,
"examples": [
0,
"QN_R_READ | QN_R_WRITE",
"QN_R_CREATE | QN_R_READ | QN_R_DELETE | QN_R_WRITE | QN_R_MANAGE"
"EQ_R_READ | EQ_R_WRITE",
"EQ_R_CREATE | EQ_R_READ | EQ_R_DELETE | EQ_R_WRITE | EQ_R_MANAGE"
]
},
"DEBUG_MODE": {
Expand All @@ -60,16 +60,18 @@
"instant": true,
"default": 0,
"examples": [
"QN_MODE_PHP | QN_MODE_ORM | QN_MODE_SQL | QN_MODE_APP | QN_MODE_API"
"EQ_MODE_PHP | EQ_MODE_ORM | EQ_MODE_SQL | EQ_MODE_APP | EQ_MODE_API | EQ_MODE_AAA | EQ_MODE_NET"
]
},
"DEBUG_LEVEL": {
"type": "integer",
"description": "Types of error to report (defaults to E_ALL = 32767, setting to 0 means no logs). Important: if logging level is set to E_ALL with all mode enabled, then the log file will grow quickly.",
"description": "Types of error to report (defaults to E_ALL = 32767, setting to 0 means no logs). Important: if logging level is set to E_ALL with all mode enabled, then the log file grows quite quickly.",
"instant": true,
"default": 0,
"examples": [
"QN_REPORT_DEBUG | QN_REPORT_INFO | QN_REPORT_WARNING | QN_REPORT_ERROR | QN_REPORT_FATAL"
"EQ_REPORT_DEBUG | EQ_REPORT_INFO | EQ_REPORT_WARNING | EQ_REPORT_ERROR | EQ_REPORT_FATAL",
"EQ_REPORT_INFO | EQ_REPORT_WARNING | EQ_REPORT_ERROR",
"EQ_REPORT_DEBUG & E_ALL"
]
},
"HTTP_REQUEST_TIMEOUT": {
Expand Down Expand Up @@ -282,8 +284,12 @@
},
"USER_ACCOUNT_DISPLAYNAME": {
"type": "string",
"description": "Strategy for displaying the user name to other users. The expected value is a string holding one or more of following references: 'id', 'nickname', 'mail', 'givenname', 'surname', 'initials' (Note: 'mail' is the email address and suits Apps restricted to users from a same organisation but should be avoided for non public profiles).",
"default": "mail"
"description": "Strategy for displaying the user name to other users. The expected value is a string holding one or more of following references: 'id', 'nickname', 'mail', 'firstname', 'lastname', 'initials' (Note: 'mail' is the email address and suits Apps restricted to users from a same organisation but should be avoided for non public profiles).",
"default": "mail",
"examples": [
"nickname",
"firstname lastname"
]
},
"USER_ACCOUNT_REGISTRATION": {
"type": "boolean",
Expand Down
2 changes: 1 addition & 1 deletion doc
Submodule doc updated 68 files
+3 −3 docs/advanced/cascade-configuration.md
+2 −0 docs/advanced/ci-cd.md
+5 −9 docs/advanced/workflows.md
+21 −0 docs/architecture-concepts/domains.md
+ docs/assets/img/front_end_libs.png
+ docs/assets/img/workbench_access_uml.png
+ docs/assets/img/workbench_apps_icon.png
+ docs/assets/img/workbench_apps_icons.png
+ docs/assets/img/workbench_controller_params.png
+ docs/assets/img/workbench_controller_return.png
+ docs/assets/img/workbench_controller_return2.png
+ docs/assets/img/workbench_controller_sp1.png
+ docs/assets/img/workbench_controller_sp2.png
+ docs/assets/img/workbench_controller_sp3.png
+ docs/assets/img/workbench_creator_location.png
+ docs/assets/img/workbench_creator_model.png
+ docs/assets/img/workbench_creator_package.png
+ docs/assets/img/workbench_field_author_name.png
+ docs/assets/img/workbench_field_content.png
+ docs/assets/img/workbench_field_list.png
+ docs/assets/img/workbench_field_published.png
+ docs/assets/img/workbench_field_title.png
+ docs/assets/img/workbench_find_example.png
+ docs/assets/img/workbench_find_explanation.png
+ docs/assets/img/workbench_init_entry.png
+ docs/assets/img/workbench_init_import.png
+ docs/assets/img/workbench_init_overview.png
+ docs/assets/img/workbench_init_tuto.png
+ docs/assets/img/workbench_menu_create.png
+ docs/assets/img/workbench_menu_editor.png
+ docs/assets/img/workbench_menu_sp.png
+ docs/assets/img/workbench_menu_tuto.png
+ docs/assets/img/workbench_model_first_look.png
+ docs/assets/img/workbench_modelsp.png
+ docs/assets/img/workbench_package_init.png
+ docs/assets/img/workbench_package_initialized.png
+ docs/assets/img/workbench_package_sp.png
+ docs/assets/img/workbench_routes.png
+ docs/assets/img/workbench_traduction_top.png
+ docs/assets/img/workbench_translation_error.png
+ docs/assets/img/workbench_translation_model.png
+ docs/assets/img/workbench_translation_tuto.png
+ docs/assets/img/workbench_translation_view.png
+ docs/assets/img/workbench_uml_add.png
+ docs/assets/img/workbench_uml_overview.png
+ docs/assets/img/workbench_uml_print.png
+ docs/assets/img/workbench_view_creator.png
+ docs/assets/img/workbench_view_editor_comparison.png
+ docs/assets/img/workbench_view_editor_form.png
+ docs/assets/img/workbench_view_editor_list.png
+ docs/assets/img/workbench_view_editor_top.png
+ docs/assets/img/workbench_view_editor_tuto_form.png
+ docs/assets/img/workbench_view_editor_tuto_list.png
+ docs/assets/img/workbench_view_sidemenu.png
+ docs/assets/img/workbench_view_submenu.png
+ docs/assets/img/workbench_view_tuto.png
+ docs/assets/img/workflow_overview.png
+ docs/assets/img/workflow_tuto.png
+40 −13 docs/getting-started/configuration.md
+22 −21 docs/getting-started/quick-start.md
+72 −76 docs/howtos-and-examples/basic-webapp.md
+209 −0 docs/low-code/low-code.md
+518 −0 docs/low-code/workbench.md
+12 −9 docs/usage/model-definition.md
+53 −27 docs/usage/packages.md
+489 −628 docs/usage/views.md
+4 −3 docs/welcome/contribution-guide.md
+3 −2 mkdocs.yml
169 changes: 95 additions & 74 deletions eq.lib.php

Large diffs are not rendered by default.

126 changes: 14 additions & 112 deletions lib/equal/db/DBConnection.class.php
Original file line number Diff line number Diff line change
@@ -1,139 +1,41 @@
<?php
/*
This file is part of the eQual framework <http://www.github.com/cedricfrancoys/equal>
Some Rights Reserved, Cedric Francoys, 2010-2021
Licensed under GNU LGPL 3 license <http://www.gnu.org/licenses/>
This file is part of the eQual framework <http://www.github.com/equalframework/equal>
Some Rights Reserved, eQual framework, 2010-2024
Original author(s): Cédric FRANCOYS
License: GNU LGPL 3 license <http://www.gnu.org/licenses/>
*/
namespace equal\db;

use equal\organic\Service;

/**
* Service implementing factory pattern for DBManipulator instances.
* This class uses factory pattern for providing DBManipulator instances.
*/
class DBConnection extends Service {
class DBConnection {

/**
* @var DBManipulator
*/
private $dbConnection;
public static function create(string $dbms='', string $host='', int $port=null, string $name='', string $user='', string $password='', string $charset='', string $collation='') {
/** @var DBManipulator */
$dbConnection = null;

protected function __construct() {
switch(constant('DB_DBMS')) {
switch($dbms) {
case 'MARIADB':
case 'MYSQL' :
$this->dbConnection = new DBManipulatorMySQL(
constant('DB_HOST'),
constant('DB_PORT'),
constant('DB_NAME'),
constant('DB_USER'),
constant('DB_PASSWORD'),
constant('DB_CHARSET'),
constant('DB_COLLATION')
);
$dbConnection = new DBManipulatorMySQL($host, $port, $name, $user, $password, $charset, $collation);
break;
case 'SQLSRV' :
$this->dbConnection = new DBManipulatorSqlSrv(
constant('DB_HOST'),
constant('DB_PORT'),
constant('DB_NAME'),
constant('DB_USER'),
constant('DB_PASSWORD'),
constant('DB_CHARSET'),
constant('DB_COLLATION')
);
$dbConnection = new DBManipulatorSqlSrv($host, $port, $name, $user, $password, $charset, $collation);
break;
case 'SQLITE' :
$this->dbConnection = new DBManipulatorSQLite(
constant('DB_HOST'),
constant('DB_PORT'),
constant('DB_NAME'),
constant('DB_USER'),
constant('DB_PASSWORD'),
constant('DB_CHARSET'),
constant('DB_COLLATION')
);
$dbConnection = new DBManipulatorSQLite($host, $port, $name, $user, $password, $charset, $collation);
break;
case 'POSTGRESQL' :
// #todo
break;
case 'ORACLE' :
// #todo
break;
default:
$this->dbConnection = null;
}

if(defined('DB_REPLICATION') && constant('DB_REPLICATION') != 'NO') {
// add replica members, if any
$i = 1;

while(defined('DB_'.$i.'_HOST')
&& defined('DB_'.$i.'_PORT')
&& defined('DB_'.$i.'_USER')
&& defined('DB_'.$i.'_PASSWORD')
&& defined('DB_'.$i.'_NAME')) {

$this->addReplicaMember(
constant('DB_'.$i.'_HOST'),
constant('DB_'.$i.'_PORT'),
constant('DB_'.$i.'_NAME'),
constant('DB_'.$i.'_USER'),
constant('DB_'.$i.'_PASSWORD')
);
++$i;
}
}
}

public static function constants() {
return ['DB_HOST', 'DB_PORT', 'DB_NAME', 'DB_USER', 'DB_PASSWORD', 'DB_DBMS', 'DB_CHARSET', 'DB_COLLATION'];
}

public function addReplicaMember($host, $port, $db, $user, $pass) {
$member = null;
switch(constant('DB_DBMS')) {
case 'MYSQL' :
$member = new DBManipulatorMySQL($host, $port, $db, $user, $pass);
break;
/*
// insert handling of other DBMS here
case 'XYZ' :
$this->dbConnection = new DBManipulatorXyz(DB_HOST, DB_PORT, DB_NAME, DB_USER, DB_PASSWORD);
break;
*/
default:
break;
}
if($member && $this->dbConnection) {
$this->dbConnection->addMember($member);
}
}

public function connect($auto_select=true) {
if(!isset($this->dbConnection)) return false;
return $this->dbConnection->connect($auto_select);
}

public function disconnect() {
if(!isset($this->dbConnection)) return true;
return $this->dbConnection->disconnect();
}

/**
* Magic overloading method: catch any call and relay it to DBConnection object
*
* @param string $name
* @param array $arguments
* @return mixed
*/
public function __call($name, $arguments) {

if (!$this->dbConnection) {
return null;
}

return call_user_func_array([$this->dbConnection, $name], $arguments);
return $dbConnection;
}

}
89 changes: 89 additions & 0 deletions lib/equal/db/DBConnector.class.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
<?php
/*
This file is part of the eQual framework <http://www.github.com/equalframework/equal>
Some Rights Reserved, eQual framework, 2010-2024
Original author(s): Cédric FRANCOYS
License: GNU LGPL 3 license <http://www.gnu.org/licenses/>
*/
namespace equal\db;

use equal\organic\Service;

/**
* Service for connecting to the DBMS holding the database of the current installation.
* This service acts as a facade for DB interactions.
*/
class DBConnector extends Service {

/** @var DBManipulator */
private $connection;

public static function constants() {
return ['DB_DBMS', 'DB_HOST', 'DB_PORT', 'DB_NAME', 'DB_USER', 'DB_PASSWORD', 'DB_CHARSET', 'DB_COLLATION'];
}

protected function __construct() {
$this->connection = DBConnection::create(
constant('DB_DBMS'),
constant('DB_HOST'),
constant('DB_PORT'),
constant('DB_NAME'),
constant('DB_USER'),
constant('DB_PASSWORD'),
constant('DB_CHARSET'),
constant('DB_COLLATION')
);

if(defined('DB_REPLICATION') && constant('DB_REPLICATION') != 'NO') {
// add replica members, if any
$i = 1;

while(defined('DB_'.$i.'_HOST')
&& defined('DB_'.$i.'_PORT')
&& defined('DB_'.$i.'_USER')
&& defined('DB_'.$i.'_PASSWORD')
&& defined('DB_'.$i.'_NAME')) {

$this->addReplicaMember(
constant('DB_'.$i.'_HOST'),
constant('DB_'.$i.'_PORT'),
constant('DB_'.$i.'_NAME'),
constant('DB_'.$i.'_USER'),
constant('DB_'.$i.'_PASSWORD')
);
++$i;
}
}
}

public function addReplicaMember($host, $port, $db, $user, $pass) {
/** @var DBManipulator */
$member = DBConnection::create(constant('DB_DBMS'), $host, $port, $db, $user, $pass);
if($member && $this->connection) {
$this->connection->addMember($member);
}
}

public function connect($auto_select=true) {
return isset($this->connection)?$this->connection->connect($auto_select):false;
}

public function disconnect() {
return !isset($this->connection) || $this->connection->disconnect();
}

/**
* Magic overloading method: catch any call and relay it to DBManipulator object
*
* @param string $name
* @param array $arguments
* @return mixed
*/
public function __call($name, $arguments) {
if (!$this->connection) {
return null;
}
return call_user_func_array([$this->connection, $name], $arguments);
}

}
Loading