Skip to content

Commit 2f13e7e

Browse files
#37 Refactor models to allow overriding:
- replace php annotated entities by xml mapping/validations. Add Interfaces. - add class entries on configuration for models - rework install documentation with a Doctrine ORM Configuration chapter - rework repositories and other services using model classNames & Interfaces
1 parent e575297 commit 2f13e7e

39 files changed

+714
-270
lines changed

config/doctrine/LogRecord.orm.xml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping">
3+
<mapped-superclass name="CleverAge\UiProcessBundle\Entity\LogRecord">
4+
<indexes>
5+
<index name="idx_log_record_level" columns="level" />
6+
<index name="idx_log_record_created_at" columns="created_at" />
7+
</indexes>
8+
9+
<id name="id" column="id" type="integer">
10+
<generator strategy="AUTO" />
11+
</id>
12+
<field name="channel" type="string" length="64" />
13+
<field name="level" type="integer" />
14+
<field name="message" type="string" length="512" />
15+
<field name="context" type="json" />
16+
<field name="createdAt" type="datetime_immutable" />
17+
<many-to-one field="processExecution" target-entity="CleverAge\UiProcessBundle\Entity\ProcessExecutionInterface">
18+
<join-column name="process_execution_id" referenced-column-name="id" on-delete="CASCADE" nullable="false" />
19+
</many-to-one>
20+
</mapped-superclass>
21+
</doctrine-mapping>
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping">
3+
<mapped-superclass name="CleverAge\UiProcessBundle\Entity\ProcessExecution">
4+
<indexes>
5+
<index name="idx_process_execution_code" columns="code" />
6+
<index name="idx_process_execution_start_date" columns="start_date" />
7+
</indexes>
8+
9+
<id name="id" column="id" type="integer">
10+
<generator strategy="AUTO" />
11+
</id>
12+
<field name="code" type="string" length="255" />
13+
<field name="startDate" type="datetime_immutable"/>
14+
<field name="endDate" type="datetime_immutable" nullable="true" />
15+
<field name="status" type="string" enum-type="CleverAge\UiProcessBundle\Entity\Enum\ProcessExecutionStatus" />
16+
<field name="report" type="json" />
17+
<field name="context" type="json" nullable="true" />
18+
<field name="logFilename" type="string" length="255" />
19+
</mapped-superclass>
20+
</doctrine-mapping>
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping">
3+
<mapped-superclass name="CleverAge\UiProcessBundle\Entity\ProcessSchedule">
4+
<id name="id" column="id" type="integer">
5+
<generator strategy="AUTO" />
6+
</id>
7+
<field name="process" type="string" length="255" />
8+
<field name="type" type="string" length="6" enum-type="CleverAge\UiProcessBundle\Entity\Enum\ProcessScheduleType" />
9+
<field name="expression" type="string" length="255" />
10+
<field name="input" type="text" nullable="true" />
11+
<field name="context" type="json" />
12+
</mapped-superclass>
13+
</doctrine-mapping>

config/doctrine/User.orm.xml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping">
3+
<mapped-superclass name="CleverAge\UiProcessBundle\Entity\User" table="process_user">
4+
<indexes>
5+
<index name="idx_process_user_email" columns="email" />
6+
</indexes>
7+
8+
<id name="id" column="id" type="integer">
9+
<generator strategy="AUTO" />
10+
</id>
11+
<field name="email" type="string" length="255" unique="true" />
12+
<field name="firstname" type="string" length="255" nullable="true" />
13+
<field name="lastname" type="string" length="255" nullable="true" />
14+
<field name="roles" type="json" />
15+
<field name="password" type="string" length="255" nullable="true" />
16+
<field name="timezone" type="string" length="255" nullable="true" />
17+
<field name="locale" type="string" length="255" nullable="true" />
18+
<field name="token" type="string" length="255" nullable="true" />
19+
</mapped-superclass>
20+
</doctrine-mapping>

config/services/command.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ services:
55
tags:
66
- { name: console.command }
77
arguments:
8+
- '%cleverage_ui_process.entity.user.class%'
89
- '@validator'
910
- '@security.user_password_hasher'
1011
- '@doctrine.orm.entity_manager'

config/services/event_subscriber.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ services:
55
tags:
66
- { name: 'kernel.event_subscriber' }
77
arguments:
8+
- '%cleverage_ui_process.entity.process_execution.class%'
89
- '@cleverage_ui_process.monolog_handler.process'
910
- '@cleverage_ui_process.monolog_handler.doctrine_process'
1011
- '@cleverage_ui_process.manager.process_execution'

config/services/monolog_handler.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ services:
55
calls:
66
- [ setEntityManager, [ '@doctrine.orm.entity_manager' ] ]
77
- [ setProcessExecutionManager, [ '@cleverage_ui_process.manager.process_execution' ] ]
8+
- [ setLogRecordClassName, [ '%cleverage_ui_process.entity.log_record.class%' ] ]
89
CleverAge\UiProcessBundle\Monolog\Handler\DoctrineProcessHandler:
910
alias: cleverage_ui_process.monolog_handler.doctrine_process
1011

config/services/repository.yaml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,19 @@ services:
44
public: false
55
arguments:
66
- '@doctrine.orm.entity_manager'
7+
- '%cleverage_ui_process.entity.process_execution.class%'
8+
- '%cleverage_ui_process.entity.log_record.class%'
79

810
cleverage_ui_process.repository.process_schedule:
911
class: CleverAge\UiProcessBundle\Repository\ProcessScheduleRepository
1012
public: false
1113
arguments:
12-
- '@doctrine'
14+
- '@doctrine.orm.entity_manager'
15+
- '%cleverage_ui_process.entity.process_schedule.class%'
1316

17+
cleverage_ui_process.repository.user:
18+
class: CleverAge\UiProcessBundle\Repository\UserRepository
19+
public: false
20+
arguments:
21+
- '@doctrine.orm.entity_manager'
22+
- '%cleverage_ui_process.entity.user.class%'

config/services/security.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@ services:
33
class: CleverAge\UiProcessBundle\Security\HttpProcessExecutionAuthenticator
44
public: false
55
arguments:
6-
- '@doctrine.orm.entity_manager'
6+
- '@cleverage_ui_process.repository.user'
77

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<constraint-mapping xmlns="http://symfony.com/schema/dic/constraint-mapping">
3+
<class name="CleverAge\UiProcessBundle\Entity\ProcessSchedule">
4+
<property name="process">
5+
<constraint name="CleverAge\UiProcessBundle\Validator\IsValidProcessCode" />
6+
</property>
7+
<property name="expression">
8+
<constraint name="When">
9+
<option name="expression">this.getType().value == "cron"</option>
10+
<option name="constraints">
11+
<constraint name="CleverAge\UiProcessBundle\Validator\CronExpression" />
12+
</option>
13+
</constraint>
14+
<constraint name="When">
15+
<option name="expression">this.getType().value == "every"</option>
16+
<option name="constraints">
17+
<constraint name="CleverAge\UiProcessBundle\Validator\EveryExpression" />
18+
</option>
19+
</constraint>
20+
</property>
21+
</class>
22+
</constraint-mapping>

0 commit comments

Comments
 (0)