2017 © Pedro Peláez
 

symfony-bundle flexmodel-bundle

FlexModel integration for Symfony 3+.

image

flexmodel/flexmodel-bundle

FlexModel integration for Symfony 3+.

  • Monday, January 29, 2018
  • by niels-nijens
  • Repository
  • 1 Watchers
  • 0 Stars
  • 5,194 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 7 Forks
  • 8 Open issues
  • 11 Versions
  • 2 % Grown

The README.md

FlexModelBundle

Software License, (*1)

FlexModel integration for Symfony., (*2)

Installation using Composer

Run the following command to add the package to the composer.json of your project:, (*3)

``` bash $ composer require flexmodel/flexmodel-bundle, (*4)


### Enable the bundle Enable the bundle in the kernel: ``` php // app/AppKernel.php public function registerBundles() { $bundles = array( // ... new FlexModel\FlexModelBundle\FlexModelBundle(), // ... ); }

Configure the bundle

Add the following configuration to your config.yml file:, (*5)

``` yml, (*6)

app/config/config.yml

flex_model: bundle_name: AppBundle # optional, defaults to 'AppBundle' resource: "%kernel.root_dir%/../src/AppBundle/Resources/config/flexmodel.xml", (*7)


The `resource` should refer to the location of your FlexModel configuration file. ## Usage ### Generating Doctrine ORM mapping Run the following command to generate Doctrine ORM mapping and entity classes from your FlexModel configuration: ``` bash $ php bin/console flexmodel:generate

After generating the Doctrine ORM mapping you need to update your database schema:, (*8)

``` bash $ php bin/console doctrine:schema:update --force, (*9)


### Creating a Form To create a form from a FlexModel form configuration you need to use the `FlexModelFormType` class. The class will retrieve the form configuration based on the name of the entity and provided 'form_name' option. ``` php // src/AppBundle/Controller/DefaultController.php public function newAction() { $entity = ...; $form = $this->createForm(FlexModelFormType::class, $entity, array( 'form_name' => '', )); }

For more information on creating forms, please see the Symfony documentation., (*10)

File uploads

The FlexModelBundle provides support for file uploads within FlexModel forms., (*11)

To activate this support you need to complete the following steps:, (*12)

1. Configure the FlexModelBundle for file uploads

The bundle requires a location to store the file uploads. Configure the location with the existing FlexModelBundle configuration in your config.yml file:, (*13)

``` yml, (*14)

app/config/config.yml

flex_model: resource: "%kernel.root_dir%/../src/AppBundle/Resources/config/flexmodel.xml" file_upload_path: "%kernel.root_dir%/../../some-directory-outside-of-the-project/%kernel.environment%", (*15)


#### 2. Modify your Doctrine entity class To activate file uploads for a Doctrine entity you need to implement the `UploadObjectInterface` and add getters and setters for the form fields. For ease of use the FlexModelBundle provides an `UploadTrait` to implement both the interface and the getters and setters: ``` php namespace AppBundle\Entity; use FlexModel\FlexModelBundle\Model\UploadObjectInterface; use FlexModel\FlexModelBundle\Model\UploadTrait; class Entity implements UploadObjectInterface { use UploadTrait { getFileUpload as getImageUpload; setFileUpload as setImageUpload; getFileUpload as getAnotherImageUpload; setFileUpload as setAnotherImageUpload; } }

In the above example you see the UploadTrait with getters and setters for two file upload fields implemented. Here the getImageUpload method maps to a FlexModel field called 'image' and getAnotherImageUpload maps to 'another_image'., (*16)

Credits

License

This package is licensed under the MIT License. Please see the LICENSE file for details., (*17)

The Versions