diff options
author | Ludovic Pouzenc <ludovic@pouzenc.fr> | 2018-07-16 13:24:18 +0200 |
---|---|---|
committer | Ludovic Pouzenc <ludovic@pouzenc.fr> | 2018-07-16 13:26:14 +0200 |
commit | 31a40cfc446c9586f89a4aa69ef76d76d469e5a4 (patch) | |
tree | a68141ff714b1e91027d551d38fabc792bd498e7 /fai_gestion/plugins/CustomTheme/src/Template/Bake/Model | |
parent | c9939556d486da50f180ce424dd456252b1e0349 (diff) | |
download | chd_gestion-31a40cfc446c9586f89a4aa69ef76d76d469e5a4.zip chd_gestion-31a40cfc446c9586f89a4aa69ef76d76d469e5a4.tar.gz chd_gestion-31a40cfc446c9586f89a4aa69ef76d76d469e5a4.tar.bz2 |
Bake : setup and create empty CustomTheme
Diffstat (limited to 'fai_gestion/plugins/CustomTheme/src/Template/Bake/Model')
-rw-r--r-- | fai_gestion/plugins/CustomTheme/src/Template/Bake/Model/entity.twig | 61 | ||||
-rw-r--r-- | fai_gestion/plugins/CustomTheme/src/Template/Bake/Model/table.twig | 138 |
2 files changed, 199 insertions, 0 deletions
diff --git a/fai_gestion/plugins/CustomTheme/src/Template/Bake/Model/entity.twig b/fai_gestion/plugins/CustomTheme/src/Template/Bake/Model/entity.twig new file mode 100644 index 0000000..e09794a --- /dev/null +++ b/fai_gestion/plugins/CustomTheme/src/Template/Bake/Model/entity.twig @@ -0,0 +1,61 @@ +{# +/** + * CakePHP(tm) : Rapid Development Framework (http://cakephp.org) + * Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org) + * + * Licensed under The MIT License + * For full copyright and license information, please see the LICENSE.txt + * Redistributions of files must retain the above copyright notice. + * + * @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org) + * @link http://cakephp.org CakePHP(tm) Project + * @since 2.0.0 + * @license http://www.opensource.org/licenses/mit-license.php MIT License + */ +#} +{% set propertyHintMap = DocBlock.buildEntityPropertyHintTypeMap(propertySchema ?: []) %} +{% set associationHintMap = DocBlock.buildEntityAssociationHintTypeMap(propertySchema ?: []) %} +{% set annotations = DocBlock.propertyHints(propertyHintMap) %} + +{%- if associationHintMap %} + {%- set annotations = annotations|merge(['']) %} + {%- set annotations = annotations|merge(DocBlock.propertyHints(associationHintMap)) %} +{% endif %} + +{%- set accessible = Bake.getFieldAccessibility(fields, primaryKey) %} +<?php +namespace {{ namespace }}\Model\Entity; + +use Cake\ORM\Entity; + +{{ DocBlock.classDescription(name, 'Entity', annotations)|raw }} +class {{ name }} extends Entity +{ +{% if accessible %} + + /** + * Fields that can be mass assigned using newEntity() or patchEntity(). + * + * Note that when '*' is set to true, this allows all unspecified fields to + * be mass assigned. For security purposes, it is advised to set '*' to false + * (or remove it), and explicitly make individual fields accessible as needed. + * + * @var array + */ + protected $_accessible = [{{ Bake.stringifyList(accessible, {'quotes': false})|raw }}]; +{% endif %} + +{%- if hidden %} + + /** + * Fields that are excluded from JSON versions of the entity. + * + * @var array + */ + protected $_hidden = [{{ Bake.stringifyList(hidden)|raw }}]; +{% endif %} + +{%- if not accessible and not hidden %} + +{% endif %} +} diff --git a/fai_gestion/plugins/CustomTheme/src/Template/Bake/Model/table.twig b/fai_gestion/plugins/CustomTheme/src/Template/Bake/Model/table.twig new file mode 100644 index 0000000..94ad17c --- /dev/null +++ b/fai_gestion/plugins/CustomTheme/src/Template/Bake/Model/table.twig @@ -0,0 +1,138 @@ +{# +/** + * CakePHP(tm) : Rapid Development Framework (http://cakephp.org) + * Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org) + * + * Licensed under The MIT License + * For full copyright and license information, please see the LICENSE.txt + * Redistributions of files must retain the above copyright notice. + * + * @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org) + * @link http://cakephp.org CakePHP(tm) Project + * @since 2.0.0 + * @license http://www.opensource.org/licenses/mit-license.php MIT License + */ +#} +{% set annotations = DocBlock.buildTableAnnotations(associations, associationInfo, behaviors, entity, namespace) %} +<?php +namespace {{ namespace }}\Model\Table; + +{% set uses = ['use Cake\\ORM\\Query;', 'use Cake\\ORM\\RulesChecker;', 'use Cake\\ORM\\Table;', 'use Cake\\Validation\\Validator;'] %} +{{ uses|join('\n')|raw }} + +{{ DocBlock.classDescription(name, 'Model', annotations)|raw }} +class {{ name }}Table extends Table +{ + + /** + * Initialize method + * + * @param array $config The configuration for the Table. + * @return void + */ + public function initialize(array $config) + { + parent::initialize($config); + +{% if table %} + $this->setTable('{{ table }}'); +{% endif %} + +{%- if displayField %} + $this->setDisplayField('{{ displayField }}'); +{% endif %} + +{%- if primaryKey %} + {%- if primaryKey is iterable and primaryKey|length > 1 %} + $this->setPrimaryKey([{{ Bake.stringifyList(primaryKey, {'indent': false})|raw }}]); + {{- "\n" }} + {%- else %} + $this->setPrimaryKey('{{ primaryKey|as_array|first }}'); + {{- "\n" }} + {%- endif %} +{% endif %} + +{%- if behaviors %} + +{% endif %} + +{%- for behavior, behaviorData in behaviors %} + $this->addBehavior('{{ behavior }}'{{ (behaviorData ? (", [" ~ Bake.stringifyList(behaviorData, {'indent': 3, 'quotes': false})|raw ~ ']') : '')|raw }}); +{% endfor %} + +{%- if associations.belongsTo or associations.hasMany or associations.belongsToMany %} + +{% endif %} + +{%- for type, assocs in associations %} + {%- for assoc in assocs %} + {%- set assocData = [] %} + {%- for key, val in assoc if key is not same as('alias') %} + {%- set assocData = assocData|merge({(key): val}) %} + {%- endfor %} + $this->{{ type }}('{{ assoc.alias }}', [{{ Bake.stringifyList(assocData, {'indent': 3})|raw }}]); + {{- "\n" }} + {%- endfor %} +{% endfor %} + } +{{- "\n" }} + +{%- if validation %} + + /** + * Default validation rules. + * + * @param \Cake\Validation\Validator $validator Validator instance. + * @return \Cake\Validation\Validator + */ + public function validationDefault(Validator $validator) + { +{% for field, rules in validation %} +{% set validationMethods = Bake.getValidationMethods(field, rules) %} +{% if validationMethods %} + $validator +{% for validationMethod in validationMethods %} +{% if loop.last %} +{% set validationMethod = validationMethod ~ ';' %} +{% endif %} + {{ validationMethod|raw }} +{% endfor %} + +{% endif %} +{% endfor %} + return $validator; + } +{% endif %} + +{%- if rulesChecker %} + + /** + * Returns a rules checker object that will be used for validating + * application integrity. + * + * @param \Cake\ORM\RulesChecker $rules The rules object to be modified. + * @return \Cake\ORM\RulesChecker + */ + public function buildRules(RulesChecker $rules) + { +{% for field, rule in rulesChecker %} + $rules->add($rules->{{ rule.name }}(['{{ field }}']{{ (rule.extra is defined and rule.extra ? (", '#{rule.extra}'") : '')|raw }})); +{% endfor %} + + return $rules; + } +{% endif %} + +{%- if connection is not same as('default') %} + + /** + * Returns the database connection name to use by default. + * + * @return string + */ + public static function defaultConnectionName() + { + return '{{ connection }}'; + } +{% endif %} +} |