Archivo de la categoría: Symfony

Symfony Cheat Sheet

Response:

Devolver un Archivo PDF

use Symfony\Component\HttpFoundation\BinaryFileResponse;
//..
return new BinaryFileResponse('/path/al/archivo.pdf');

JSON Response

use Symfony\Component\HttpFoundation\JsonResponse;
//..
$response = new JsonResponse();
$response->setData(array(
    'data' => 123
));
return $response;

Cache:

Cambiar permisos:

Symfony 2:

$ HTTPDUSER=`ps aux | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\  -f1`
$ sudo setfacl -R -m u:"$HTTPDUSER":rwX -m u:`whoami`:rwX app/cache app/logs
$ sudo setfacl -dR -m u:"$HTTPDUSER":rwX -m u:`whoami`:rwX app/cache app/logs

#Comandos anteriores en una sola linea
HTTPDUSER=`ps aux | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\  -f1`;setfacl -R -m u:"$HTTPDUSER":rwX -m u:`whoami`:rwX app/cache app/logs;setfacl -dR -m u:"$HTTPDUSER":rwX -m u:`whoami`:rwX app/cache app/logs;

Symfony 3:

$ HTTPDUSER=`ps axo user,comm | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\  -f1`
$ sudo setfacl -R -m u:"$HTTPDUSER":rwX -m u:`whoami`:rwX var
$ sudo setfacl -dR -m u:"$HTTPDUSER":rwX -m u:`whoami`:rwX var

#Comandos anteriores en una sola linea
HTTPDUSER=`ps axo user,comm | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\  -f1`;setfacl -R -m u:"$HTTPDUSER":rwX -m u:`whoami`:rwX var;setfacl -dR -m u:"$HTTPDUSER":rwX -m u:`whoami`:rwX var;

Doctrine:

Dump

echo '<pre>';
\Doctrine\Common\Util\Debug::dump($entities);
echo'</pre>';

Controller:

Dump


//$variable = Variable a imprimir
//$this = El controlador
dump($variable, $this);

Twig:

Dump


//variable = Variable a imprimir
//Se puede no pasar una variable e imprime todas las variables que existen en el template
{{ dump(variable)}}

Crear proyecto en Symfony 4

$ composer self-update
$ composer create-project symfony/skeleton my_project
$ cd my_project
$ php -S 127.0.0.1:8000 -t public
$ git init
$ git add .
$ git commit
$ composer require server
$ composer require annotations
$ composer require sec-checker –dev
$ composer require twig
$ composer require asset
$ composer require profiler –dev
$ composer require debug –dev

PHPStorm Y Symfony
1. Instalar Symfony plugin
2. Instalar PHP annotations plugin
3. PHP Toolbox plugin
4. Buscar Symfony plugin y hacer click en el check «Enable plugin for this project»
5. Buscar «composer» y seleccionamos el archivo composer de nuestro proyecto

Symfony Validation Cheat Sheet

Validaciones en propiedades de una entidad

STRING:

http://symfony.com/doc/current/reference/constraints.html#string-constraints

/**
* @var string
*
* @ORM\Column(name="nombre", type="string", length=100)
* @Assert\NotBlank()
* @Assert\Length(min = 2, max = 100)
* @Assert\Type(type="string")
*/

INTEGER:

http://symfony.com/doc/current/reference/constraints/Type.html

/**
* @var int
*
* @ORM\Column(name="estado", type="integer")
* @Assert\Type(type="int")
* @Assert\Range(min = 120, max = 180)
*/

NUMERIC:

http://symfony.com/doc/current/reference/constraints/Type.html

/**
* @var string
*
* @Assert\Type(type="numeric")
*/

FLOAT:

http://symfony.com/doc/current/reference/constraints/Type.html

/**
* @var float
*
* @Assert\GreaterThan(value = 0)
* @Assert\Type(type="float")
*/

UNIQUE ENTITY:

use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;

/**
 * @ORM\Entity
 * @UniqueEntity("email")
 */

/**
 * @var string $email
 *
 * @ORM\Column(name="email", type="string", length=100, unique=true)
 * @Assert\Email()
 */

Symfony Forms Cheat Sheet

Campos de formulario:

ChoiceType

Checkboxes

SF3:

use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
//..
->add('activo', ChoiceType::class, array(
    'choices' => array(
        'Si' => 0,
        'No' => 1,
    ),
    'expanded' => true,
    'multiple' => true
))

Ocultar un select en campo de fecha

{{ form_widget(form.fechaHasta.day, {'attr': {'class': 'hide'}}) }}