David Flores
#Linux #Drupal #Symfony #WebDeveloper #Silex #OpenSource
$ composer require symfony/maker-bundle --dev
make:command Creates a new console command class
make:controller Creates a new controller class
make:entity Creates a new Doctrine entity class
[...]
make:validator Creates a new validator and constraint class
make:voter Creates a new security voter class
make:command Creates a new console command class
make:controller Creates a new controller class
make:entity Creates a new Doctrine entity class
[...]
make:validator Creates a new validator and constraint class
make:voter Creates a new security voter class
$ ./bin/console make:entity 2397ms Wed 21 Aug 2019 02:47:55 PM CDT
Class name of the entity to create or update (e.g. DeliciousJellybean):
> Data
created: src/Entity/Data.php
created: src/Repository/DataRepository.php
...
New property name (press <return> to stop adding fields):
> element
Field type (enter ? to see all types) [string]:
>
Field length [255]:
> 50
Can this field be null in the database (nullable) (yes/no) [no]:
>
updated: src/Entity/Data.php
Add another property? Enter the property name (or press <return> to stop adding fields):
>
$ ./bin/console make:entity 1.7m Wed 21 Aug 2019 02:49:42 PM CDT
Class name of the entity to create or update (e.g. TinyPuppy):
> Data
Your entity already exists! So let's add some new fields!
New property name (press <return> to stop adding fields):
> rel
Field type (enter ? to see all types) [string]:
> relation
What class should this entity be related to?:
> User
...
What type of relationship is this?
------------ ----------------------------------------------------------------
Type Description
------------ ----------------------------------------------------------------
ManyToOne Each Data relates to (has) one User.
Each User can relate to (can have) many Data objects
OneToMany Each Data can relate to (can have) many User objects.
Each User relates to (has) one Data
ManyToMany Each Data can relate to (can have) many User objects.
Each User can also relate to (can also have) many Data objects
OneToOne Each Data relates to (has) exactly one User.
Each User also relates to (has) exactly one Data.
------------ ----------------------------------------------------------------
Relation type? [ManyToOne, OneToMany, ManyToMany, OneToOne]:
> ManyToOne
Is the Data.rel property allowed to be null (nullable)? (yes/no) [yes]:
>
Do you want to add a new property to User so that you can
access/update Data objects from it - e.g. $user->getData()? (yes/no) [yes]:
>
A new property will also be added to the User class so that you can access
the related Data objects from it.
New field name inside User [data]:
>
updated: src/Entity/Data.php
updated: src/Entity/User.php
<?php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass="App\Repository\DataRepository")
*/
class Data
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="string", length=50)
*/
private $element;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\User", inversedBy="data")
*/
private $rel;
...
<?php
namespace App\Repository;
use App\Entity\Data;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Symfony\Bridge\Doctrine\RegistryInterface;
/**
* @method Data|null find($id, $lockMode = null, $lockVersion = null)
* @method Data|null findOneBy(array $criteria, array $orderBy = null)
* @method Data[] findAll()
* @method Data[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
*/
class DataRepository extends ServiceEntityRepository
{
public function __construct(RegistryInterface $registry)
{
parent::__construct($registry, Data::class);
}
...
}
<?php
namespace App\Controller;
use ...;
class IndexController extends AbstractController
{
protected $dataRepo;
protected $userRepo;
public function __construct(DataRepository $data)
{
$this->dataRepo = $data;
}
/**
* @Route("/", name="index")
*/
public function index(UserRepository $userRepo)
{
$data = $this->dataRepo->findOneBy([...]);
$use user = $userRepo->find(10);
}
...
}
By David Flores
Explicación de como aprovechar el comando Make de Symfony 4