Example of nested collection forms TemplateType.php class TemplateType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options): void { $builder ->add(‘name’, TextType::class, [ ‘label’ => “Template Name”, ‘required’ => true, ‘attr’ => [ ‘class’ => ‘form-control’, ], ]) ->add(‘sentences’, CollectionType::class, [ ‘entry_type’ => SentenceType::class, ‘entry_options’ => [‘label’ => false], ‘label’ => false, ‘allow_add’ =>…
Slow variant: SELECT * FROM table t1 WHERE t1.domain_id = 1569 AND t1.is_active = 1 AND (t1.field IN (SELECT t2.field FROM table t2 WHERE t2.is_active = 1 GROUP BY t2.field HAVING COUNT(t2.field) > 1)) Faster variant: SELECT l0_.* FROM table l0_ inner join table n2 on n2.field = l0_.field where l0_.id n2.id AND l0_.is_active…
$queryBuilder = $this->createQueryBuilder(‘account_event’); $queryBuilder ->select(‘account_event.id AS AE_id’, ‘IDENTITY(account_event.event) AS event_id’, ‘account_event.dueDate as due_date’, ‘IDENTITY(account_event.account) AS account_id’) ->where( $queryBuilder->expr()->in( ‘account_event.id’, $this->createQueryBuilder(‘subquery_repository’) ->select(‘MAX(ae2.id)’) ->from(AccountEvent::class,’ae2′) ->andWhere(‘ae2.event IN (:events)’) ->andWhere(‘ae2.account IN (:accounts)’) ->andWhere(‘ae2.dueDate > DATE(:date)’) ->groupBy(‘ae2.account’) ->getDQL() ) ) ->setParameter(‘events’, $events) ->setParameter(‘accounts’, $accounts) ->setParameter(‘date’, $date->format(‘Y-m-d’)) ;
sudo dpkg –configure -a sudo apt-get install mysql-server apt-cache pkgnames | grep php7.3 php -r “copy(‘https://getcomposer.org/installer’, ‘composer-setup.php’);” php -r “if (hash_file(‘sha384’, ‘composer-setup.php’) === ‘a5c698ffe4b8e849a443b120cd5ba38043260d5c4023dbf93e1558871f1f07f58274fc6f4c93bcfd858c6bd0775cd8d1’) { echo ‘Installer verified’; } else { echo ‘Installer corrupt’; unlink(‘composer-setup.php’); } echo PHP_EOL;” php composer-setup.php php -r “unlink(‘composer-setup.php’);” sudo mv composer.phar /usr/local/bin/composer # run this if you are building…
Add to .env RABBITMQ_HOST=localhost RABBITMQ_PORT=5672 RABBITMQ_USERNAME=test RABBITMQ_PASSWORD=test RABBITMQ_QUEUE_NAME=task_queue Add to services.yaml App\Command\WorkerCommand: arguments: [‘%env(RABBITMQ_HOST)%’, ‘%env(RABBITMQ_PORT)%’, ‘%env(RABBITMQ_USERNAME)%’, ‘%env(RABBITMQ_PASSWORD)%’, ‘%env(RABBITMQ_QUEUE_NAME)%’] App\Command\PublisherCommand: arguments: [‘%env(RABBITMQ_HOST)%’, ‘%env(RABBITMQ_PORT)%’, ‘%env(RABBITMQ_USERNAME)%’, ‘%env(RABBITMQ_PASSWORD)%’, ‘%env(RABBITMQ_QUEUE_NAME)%’]
Simple example how to convert Array to XML: public function toXML() { $array = [ ‘fields’ => [ ‘field’ => [ ‘@name’ => ‘name’, ‘@test’ => ‘test’, ‘#’ => 12345 ] ] ]; $xmlEncoder = new XmlEncoder(); $response = new Response(); $response->setContent($xmlEncoder->encode($array, ‘xml’)); $response->headers->set(‘Content-Type’, ‘xml’); return $response; }
This task is really simple. You can achieve it from Kernel.php, getCacheDir method: public function getCacheDir() { // return $this->getProjectDir().’/var/cache/’.$this->environment; //Any location on your server return ‘/dev/shm/’.$this->environment; //This will cache in RAM }
Install redis server: sudo apt-get install redis-server Copy backup configuration file: sudo cp /etc/redis/redis.conf /etc/redis/redis.conf.default Check if redis is installed correctly by: redis-cli
Always create service interface for your service. This way you will have better structured code and phpunit testing will be real pleasure. Also use dependency injection for your repositories in the service. Service Interface Example interface UserServiceInterface{ public function getUsername(); public function viewAll(); } Service Example class UserService implements UserServiceInterface { private $entityManager; private…
There are several way to make authorization on your site with Symfony. First is in your security.yml on the same level as firewalls tag: access_control: – { path: ^/admin, roles: ROLE_USER } This will block all users that don’t have ‘ROLE_USER’ to admin page. Second option is to use Controller. Inside Method insert: if(!$this->get(‘security.authorization_checker’)->isGranted(‘ROLE_ADMIN’)){…