Skip to content

Commit 91d5a08

Browse files
committed
improve imports od Persistence classes
1 parent 59c51f0 commit 91d5a08

33 files changed

+87
-61
lines changed

.github/workflows/test-unit.yml

+10-10
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ jobs:
158158
DB_USER: atk4_test_user
159159
DB_PASSWORD: atk4_pass
160160
run: |
161-
sed -E "s~(\\\$db = new.+Sql)\(.+\);~\\1('$DB_DSN', '$DB_USER', '$DB_PASSWORD');~g" -i demos/db.default.php
161+
sed -E "s~(\\\$db = new.+Persistence\\\\Sql)\(.+\);~\\1('$DB_DSN', '$DB_USER', '$DB_PASSWORD');~g" -i demos/db.default.php
162162
php demos/_demo-data/create-db.php
163163
php -d opcache.enable_cli=1 vendor/bin/phpunit --exclude-group none $(if [ -n "$LOG_COVERAGE" ]; then echo --coverage-text; else echo --no-coverage; fi) -v
164164
if [ -n "$LOG_COVERAGE" ]; then mv coverage/phpunit.cov coverage/phpunit-mysql.cov; fi
@@ -169,7 +169,7 @@ jobs:
169169
DB_USER: atk4_test_user
170170
DB_PASSWORD: atk4_pass
171171
run: |
172-
sed -E "s~(\\\$db = new.+Sql)\(.+\);~\\1('$DB_DSN', '$DB_USER', '$DB_PASSWORD');~g" -i demos/db.default.php
172+
sed -E "s~(\\\$db = new.+Persistence\\\\Sql)\(.+\);~\\1('$DB_DSN', '$DB_USER', '$DB_PASSWORD');~g" -i demos/db.default.php
173173
php demos/_demo-data/create-db.php
174174
php -d opcache.enable_cli=1 vendor/bin/phpunit --exclude-group none $(if [ -n "$LOG_COVERAGE" ]; then echo --coverage-text; else echo --no-coverage; fi) -v
175175
if [ -n "$LOG_COVERAGE" ]; then mv coverage/phpunit.cov coverage/phpunit-mariadb.cov; fi
@@ -180,7 +180,7 @@ jobs:
180180
DB_USER: atk4_test_user
181181
DB_PASSWORD: atk4_pass
182182
run: |
183-
sed -E "s~(\\\$db = new.+Sql)\(.+\);~\\1('$DB_DSN', '$DB_USER', '$DB_PASSWORD');~g" -i demos/db.default.php
183+
sed -E "s~(\\\$db = new.+Persistence\\\\Sql)\(.+\);~\\1('$DB_DSN', '$DB_USER', '$DB_PASSWORD');~g" -i demos/db.default.php
184184
php demos/_demo-data/create-db.php
185185
php -d opcache.enable_cli=1 vendor/bin/phpunit --exclude-group none $(if [ -n "$LOG_COVERAGE" ]; then echo --coverage-text; else echo --no-coverage; fi) -v
186186
if [ -n "$LOG_COVERAGE" ]; then mv coverage/phpunit.cov coverage/phpunit-postgres.cov; fi
@@ -191,7 +191,7 @@ jobs:
191191
DB_USER: sa
192192
DB_PASSWORD: atk4_pass
193193
run: |
194-
sed -E "s~(\\\$db = new.+Sql)\(.+\);~\\1('$DB_DSN', '$DB_USER', '$DB_PASSWORD');~g" -i demos/db.default.php
194+
sed -E "s~(\\\$db = new.+Persistence\\\\Sql)\(.+\);~\\1('$DB_DSN', '$DB_USER', '$DB_PASSWORD');~g" -i demos/db.default.php
195195
php demos/_demo-data/create-db.php
196196
php -d opcache.enable_cli=1 vendor/bin/phpunit --exclude-group none $(if [ -n "$LOG_COVERAGE" ]; then echo --coverage-text; else echo --no-coverage; fi) -v
197197
if [ -n "$LOG_COVERAGE" ]; then mv coverage/phpunit.cov coverage/phpunit-mssql.cov; fi
@@ -204,7 +204,7 @@ jobs:
204204
DB_PASSWORD: oracle
205205
NLS_LANG: AMERICAN_AMERICA.AL32UTF8
206206
run: |
207-
sed -E "s~(\\\$db = new.+Sql)\(.+\);~\\1('$DB_DSN', '$DB_USER', '$DB_PASSWORD');~g" -i demos/db.default.php
207+
sed -E "s~(\\\$db = new.+Persistence\\\\Sql)\(.+\);~\\1('$DB_DSN', '$DB_USER', '$DB_PASSWORD');~g" -i demos/db.default.php
208208
php demos/_demo-data/create-db.php
209209
php -d opcache.enable_cli=1 vendor/bin/phpunit --exclude-group none $(if [ -n "$LOG_COVERAGE" ]; then echo --coverage-text; else echo --no-coverage; fi) -v \
210210
|| php -d opcache.enable_cli=1 vendor/bin/phpunit --exclude-group none $(if [ -n "$LOG_COVERAGE" ]; then echo --coverage-text; else echo --no-coverage; fi) -v
@@ -364,7 +364,7 @@ jobs:
364364
DB_USER: atk4_test_user
365365
DB_PASSWORD: atk4_pass
366366
run: |
367-
sed -E "s~(\\\$db = new.+Sql)\(.+\);~\\1('$DB_DSN', '$DB_USER', '$DB_PASSWORD');~g" -i demos/db.default.php
367+
sed -E "s~(\\\$db = new.+Persistence\\\\Sql)\(.+\);~\\1('$DB_DSN', '$DB_USER', '$DB_PASSWORD');~g" -i demos/db.default.php
368368
php demos/_demo-data/create-db.php
369369
vendor/bin/behat -vv --config behat.yml.dist
370370
@@ -375,7 +375,7 @@ jobs:
375375
DB_USER: atk4_test_user
376376
DB_PASSWORD: atk4_pass
377377
run: |
378-
sed -E "s~(\\\$db = new.+Sql)\(.+\);~\\1('$DB_DSN', '$DB_USER', '$DB_PASSWORD');~g" -i demos/db.default.php
378+
sed -E "s~(\\\$db = new.+Persistence\\\\Sql)\(.+\);~\\1('$DB_DSN', '$DB_USER', '$DB_PASSWORD');~g" -i demos/db.default.php
379379
php demos/_demo-data/create-db.php
380380
vendor/bin/behat -vv --config behat.yml.dist
381381
@@ -386,7 +386,7 @@ jobs:
386386
DB_USER: atk4_test_user
387387
DB_PASSWORD: atk4_pass
388388
run: |
389-
sed -E "s~(\\\$db = new.+Sql)\(.+\);~\\1('$DB_DSN', '$DB_USER', '$DB_PASSWORD');~g" -i demos/db.default.php
389+
sed -E "s~(\\\$db = new.+Persistence\\\\Sql)\(.+\);~\\1('$DB_DSN', '$DB_USER', '$DB_PASSWORD');~g" -i demos/db.default.php
390390
php demos/_demo-data/create-db.php
391391
vendor/bin/behat -vv --config behat.yml.dist
392392
@@ -397,7 +397,7 @@ jobs:
397397
DB_USER: sa
398398
DB_PASSWORD: atk4_pass
399399
run: |
400-
sed -E "s~(\\\$db = new.+Sql)\(.+\);~\\1('$DB_DSN', '$DB_USER', '$DB_PASSWORD');~g" -i demos/db.default.php
400+
sed -E "s~(\\\$db = new.+Persistence\\\\Sql)\(.+\);~\\1('$DB_DSN', '$DB_USER', '$DB_PASSWORD');~g" -i demos/db.default.php
401401
php demos/_demo-data/create-db.php
402402
vendor/bin/behat -vv --config behat.yml.dist
403403
@@ -409,7 +409,7 @@ jobs:
409409
DB_PASSWORD: oracle
410410
NLS_LANG: AMERICAN_AMERICA.AL32UTF8
411411
run: |
412-
sed -E "s~(\\\$db = new.+Sql)\(.+\);~\\1('$DB_DSN', '$DB_USER', '$DB_PASSWORD');~g" -i demos/db.default.php
412+
sed -E "s~(\\\$db = new.+Persistence\\\\Sql)\(.+\);~\\1('$DB_DSN', '$DB_USER', '$DB_PASSWORD');~g" -i demos/db.default.php
413413
php demos/_demo-data/create-db.php
414414
vendor/bin/behat -vv --config behat.yml.dist \
415415
|| vendor/bin/behat -vv --config behat.yml.dist

demos/_demo-data/create-db.php

+3-2
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,18 @@
55
namespace Atk4\Ui\Demos;
66

77
use Atk4\Data\Model;
8+
use Atk4\Data\Persistence;
89
use Atk4\Data\Schema\Migrator;
910

1011
require_once __DIR__ . '/../init-autoloader.php';
1112

1213
$sqliteFile = __DIR__ . '/db.sqlite';
1314
if (!file_exists($sqliteFile)) {
14-
new \Atk4\Data\Persistence\Sql('sqlite:' . $sqliteFile);
15+
new Persistence\Sql('sqlite:' . $sqliteFile);
1516
}
1617
unset($sqliteFile);
1718

18-
/** @var \Atk4\Data\Persistence\Sql $db */
19+
/** @var Persistence\Sql $db */
1920
require_once __DIR__ . '/../init-db.php';
2021

2122
class ImportModelWithPrefixedFields extends Model

demos/_includes/Persistence_Faker.php demos/_includes/FakerPersistence.php

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@
55
namespace Atk4\Ui\Demos;
66

77
use Atk4\Data\Model;
8+
use Atk4\Data\Persistence;
89

9-
class Persistence_Faker extends \Atk4\Data\Persistence
10+
class FakerPersistence extends Persistence
1011
{
1112
/** @var \Faker\Generator */
1213
public $faker;

demos/_includes/FlyersForm.php

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
namespace Atk4\Ui\Demos;
66

77
use Atk4\Data\Model;
8+
use Atk4\Data\Persistence;
89
use Atk4\Ui\Form;
910

1011
class FlyersForm extends Form
@@ -52,7 +53,7 @@ protected function init(): void
5253
], ['required' => true]);
5354

5455
$ml = $this->addControl('multi', [Form\Control\Multiline::class, 'rowLimit' => 4, 'addOnTab' => true, 'caption' => 'Additional passengers:', 'renderLabel' => false]);
55-
$ml->setModel(new Flyers(new \Atk4\Data\Persistence\Array_($this->flyers)));
56+
$ml->setModel(new Flyers(new Persistence\Array_($this->flyers)));
5657

5758
$cards = $this->addControl('cards', [Form\Control\TreeItemSelector::class, 'treeItems' => $this->cards, 'caption' => 'Flyers program:'], ['type' => 'json']);
5859
$cards->set([]);

demos/_includes/SomeData.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ class SomeData extends \Atk4\Data\Model
88
{
99
public function __construct()
1010
{
11-
$fakerPersistence = new Persistence_Faker();
11+
$fakerPersistence = new FakerPersistence();
1212

1313
parent::__construct($fakerPersistence);
1414
}

demos/collection/crud3.php

+3-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
namespace Atk4\Ui\Demos;
66

7+
use Atk4\Data\Persistence;
8+
79
/** @var \Atk4\Ui\App $app */
810
require_once __DIR__ . '/../init-app.php';
911

@@ -39,7 +41,7 @@ protected function init(): void
3941
8 => ['id' => 8, 'name' => 'ABC2', 'code' => 18, 'country' => 'Russia'],
4042
9 => ['id' => 9, 'name' => 'ABC1', 'code' => 19, 'country' => 'Latvia'],
4143
]];
42-
$p = new \Atk4\Data\Persistence\Array_($data);
44+
$p = new Persistence\Array_($data);
4345
$model = new $modelClass($p);
4446

4547
// add Crud

demos/collection/table2.php

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
namespace Atk4\Ui\Demos;
66

7+
use Atk4\Data\Persistence;
78
use Atk4\Ui\Table;
89

910
/** @var \Atk4\Ui\App $app */
@@ -15,7 +16,7 @@
1516
['id' => 3, 'action' => 'Tax', 'amount' => -40],
1617
];
1718

18-
$model = new \Atk4\Data\Model(new \Atk4\Data\Persistence\Static_($data));
19+
$model = new \Atk4\Data\Model(new Persistence\Static_($data));
1920
$model->getField('amount')->type = 'atk4_money';
2021

2122
\Atk4\Ui\Header::addTo($app, ['Table with various headers', 'subHeader' => 'Demonstrates how you can add subheaders, footnotes and other insertions into your data table', 'icon' => 'table']);

demos/collection/tablecolumns.php

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
namespace Atk4\Ui\Demos;
66

7+
use Atk4\Data\Persistence;
78
use Atk4\Ui\Table;
89

910
/** @var \Atk4\Ui\App $app */
@@ -111,7 +112,7 @@ protected function init(): void
111112

112113
\Atk4\Ui\Header::addTo($app, ['Table column', 'subHeader' => 'Table column decorator can be set from your model.']);
113114

114-
$model = new $modelColorClass(new \Atk4\Data\Persistence\Static_([]));
115+
$model = new $modelColorClass(new Persistence\Static_([]));
115116

116117
foreach (range(1, 10) as $id) {
117118
$key_value = random_int(1, 4);

demos/db.default.php

+4-2
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,17 @@
44

55
namespace Atk4\Ui\Demos;
66

7+
use Atk4\Data\Persistence;
8+
79
// to use MySQL database:
810
// 1. copy this file to "db.php"
911
// 2. uncomment the line below (and update the configuration if needed)
1012
// 3. remove the Sqlite code from the new file
11-
// $db = new \Atk4\Data\Persistence\Sql('mysql:dbname=atk4_test__ui;host=mysql', 'atk4_test', 'atk4_pass');
13+
// $db = new Persistence\Sql('mysql:dbname=atk4_test__ui;host=mysql', 'atk4_test', 'atk4_pass');
1214

1315
$sqliteFile = __DIR__ . '/_demo-data/db.sqlite';
1416
if (!file_exists($sqliteFile)) {
1517
throw new \Exception('Sqlite database does not exist, create it first.');
1618
}
17-
$db = new \Atk4\Data\Persistence\Sql('sqlite:' . $sqliteFile);
19+
$db = new Persistence\Sql('sqlite:' . $sqliteFile);
1820
unset($sqliteFile);

demos/form/form.php

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
namespace Atk4\Ui\Demos;
66

7+
use Atk4\Data\Persistence;
78
use Atk4\Ui\Form;
89

910
/** @var \Atk4\Ui\App $app */
@@ -170,7 +171,7 @@
170171

171172
\Atk4\Ui\Header::addTo($tab, ['Conditional response']);
172173

173-
$modelRegister = new \Atk4\Data\Model(new \Atk4\Data\Persistence\Array_());
174+
$modelRegister = new \Atk4\Data\Model(new Persistence\Array_());
174175
$modelRegister->addField('name');
175176
$modelRegister->addField('email');
176177
$modelRegister->addField('is_accept_terms', ['type' => 'boolean', 'mandatory' => true]);

demos/form/form5.php

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
namespace Atk4\Ui\Demos;
66

7+
use Atk4\Data\Persistence;
78
use Atk4\Ui\Form;
89
use Atk4\Ui\JsToast;
910

@@ -39,7 +40,7 @@
3940

4041
$form->onSubmit($formSubmit);
4142

42-
$model = new \Atk4\Data\Model(new \Atk4\Data\Persistence\Array_());
43+
$model = new \Atk4\Data\Model(new Persistence\Array_());
4344

4445
// model field uses regular line form control by default
4546
$model->addField('one');

demos/form/html-layout.php

+3-2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
namespace Atk4\Ui\Demos;
66

7+
use Atk4\Data\Persistence;
78
use Atk4\Ui\Form;
89
use Atk4\Ui\GridLayout;
910
use Atk4\Ui\Header;
@@ -32,7 +33,7 @@
3233
Header::addTo($right, ['Button on right']);
3334

3435
$form = Form::addTo($right, ['layout' => [Form\Layout::class, 'defaultTemplate' => __DIR__ . '/templates/form-button-right.html']]);
35-
$form->setModel((new Flyers(new \Atk4\Data\Persistence\Array_()))->tryLoadAny());
36+
$form->setModel((new Flyers(new Persistence\Array_()))->tryLoadAny());
3637
$form->getControl('last_name')->hint = 'Please enter your last name.';
3738

3839
$left = View::addTo($gridLayout, [], ['r1c2']);
@@ -47,7 +48,7 @@
4748
],
4849
],
4950
]);
50-
$form->setModel((new Flyers(new \Atk4\Data\Persistence\Array_()))->tryLoadAny());
51+
$form->setModel((new Flyers(new Persistence\Array_()))->tryLoadAny());
5152
$form->getControl('last_name')->hint = 'Please enter your last name.';
5253

5354
////////////////////////////////////////

demos/init-app.php

+3-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
namespace Atk4\Ui\Demos;
66

7+
use Atk4\Data\Persistence;
8+
79
date_default_timezone_set('UTC');
810

911
require_once __DIR__ . '/init-autoloader.php';
@@ -59,7 +61,7 @@ public static function get_class(\Closure $createAnonymousClassFx): string
5961
}
6062

6163
try {
62-
/** @var \Atk4\Data\Persistence\Sql $db */
64+
/** @var Persistence\Sql $db */
6365
require_once __DIR__ . '/init-db.php';
6466
$app->db = $db;
6567
unset($db);

demos/interactive/modal.php

+3-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
namespace Atk4\Ui\Demos;
66

7+
use Atk4\Data\Persistence;
8+
79
/** @var \Atk4\Ui\App $app */
810
require_once __DIR__ . '/../init-app.php';
911

@@ -180,7 +182,7 @@
180182
$modal->js(true, $prevAction->js()->addClass('disabled'));
181183
$modal->js(true, $nextAction->js(true)->removeClass('disabled'));
182184
} elseif ($page === 2) {
183-
$modelRegister = new \Atk4\Data\Model(new \Atk4\Data\Persistence\Array_());
185+
$modelRegister = new \Atk4\Data\Model(new Persistence\Array_());
184186
$modelRegister->addField('name', ['caption' => 'Please enter your name (John)']);
185187

186188
$form = \Atk4\Ui\Form::addTo($modal, ['segment' => true]);

demos/interactive/tabs.php

+4-1
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,12 @@
44

55
namespace Atk4\Ui\Demos;
66

7+
use Atk4\Data\Persistence;
8+
79
/**
810
* Demonstrates how to use tabs.
911
*/
12+
1013
/** @var \Atk4\Ui\App $app */
1114
require_once __DIR__ . '/../init-app.php';
1215

@@ -40,7 +43,7 @@
4043
$tabs->addTab('Dynamic Form', function ($tab) {
4144
\Atk4\Ui\Message::addTo($tab, ['It takes 2 seconds for this tab to load', 'warning']);
4245
sleep(2);
43-
$modelRegister = new \Atk4\Data\Model(new \Atk4\Data\Persistence\Array_());
46+
$modelRegister = new \Atk4\Data\Model(new Persistence\Array_());
4447
$modelRegister->addField('name', ['caption' => 'Please enter your name (John)']);
4548

4649
$form = \Atk4\Ui\Form::addTo($tab, ['segment' => true]);

demos/tutorial/intro.php

+3-2
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
namespace Atk4\Ui\Demos;
66

77
use Atk4\Data\Model;
8+
use Atk4\Data\Persistence;
89
use Atk4\Ui\Form;
910
use Atk4\Ui\Header;
1011
use Atk4\Ui\JsToast;
@@ -140,7 +141,7 @@ protected function init(): void
140141
*/
141142
session_start();
142143

143-
$model = new \Atk4\Ui\Demos\DemoInvoice(new \Atk4\Data\Persistence\Array_($_SESSION['x'] ?? []), ['dateFormat' => $owner->getApp()->ui_persistence->date_format]);
144+
$model = new \Atk4\Ui\Demos\DemoInvoice(new Persistence\Array_($_SESSION['x'] ?? []), ['dateFormat' => $owner->getApp()->ui_persistence->date_format]);
144145
$model->onHook(\Atk4\Data\Model::HOOK_AFTER_SAVE, function (Model $model) {
145146
$_SESSION['x'][$model->getId()] = $model->get();
146147
});
@@ -202,7 +203,7 @@ protected function init(): void
202203
Demo::addTo($page)->setCodeAndCall(function (View $owner) {
203204
session_start();
204205

205-
$model = new \Atk4\Ui\Demos\DemoInvoice(new \Atk4\Data\Persistence\Array_($_SESSION['x'] ?? []), ['dateFormat' => $owner->getApp()->ui_persistence->date_format]);
206+
$model = new \Atk4\Ui\Demos\DemoInvoice(new Persistence\Array_($_SESSION['x'] ?? []), ['dateFormat' => $owner->getApp()->ui_persistence->date_format]);
206207
$model->onHook(\Atk4\Data\Model::HOOK_AFTER_SAVE, function (Model $model) {
207208
$_SESSION['x'][$model->getId()] = $model->get();
208209
});

docs/app.rst

+2-2
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ Using App for Injecting Dependencies
3535
Since App class becomes available for all objects and components of Agile Toolkit, you may add
3636
properties into the App class::
3737

38-
$app->db = new \Atk4\Ui\Persistence_SQL($dsn);
38+
$app->db = new \Atk4\Data\Persistence\Sql($dsn);
3939

4040
// later anywhere in the code:
4141

@@ -70,7 +70,7 @@ active. (See :ref:`system_pattern`)::
7070
parent::__construct('Warehouse App v0.4');
7171

7272
// My App class will establish database connection
73-
$this->db = new \Atk4\Data\Persistence_SQL($_CLEARDB_DATABASE_URL['DSN']);
73+
$this->db = new \Atk4\Data\Persistence\Sql($_CLEARDB_DATABASE_URL['DSN']);
7474
$this->db->setApp($this);
7575

7676
          // My App class provides access to a currently logged user and currently selected system.

docs/data.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ data sources. The rest of this chapter will explain how you can map various data
1818
Static Data Arrays
1919
------------------
2020

21-
Agile Data contains Persistence_Array (https://agile-data.readthedocs.io/en/develop/design.html?highlight=array#domain-model-actions)
21+
Agile Data contains Persistence\Array_ (https://agile-data.readthedocs.io/en/develop/design.html?highlight=array#domain-model-actions)
2222
implementation that load and store data in a regular PHP arrays. For the "quick and easy" solution Agile UI Views provide a
2323
method :php:meth:`View::setSource` which will work-around complexities and give you a syntax::
2424

0 commit comments

Comments
 (0)