खोज…


पैरामीटर

पैरामीटर विवरण
$ सिद्धांत सिद्धांत वस्तु है कि हम सेवा से गुजरते हैं।

सिम्फनी ट्विग एक्सटेंशन बेसिक उदाहरण

इस उदाहरण में मैं दो कस्टम फ़ंक्शन को परिभाषित करता हूं। 1 - countryFilter फ़ंक्शन इनपुट के रूप में देश का संक्षिप्त कोड प्राप्त करता है और देश का पूरा नाम वापस करता है। 2 - _countPrinterTasks का उपयोग किसी विशेष उपयोगकर्ता को सौंपे गए कार्यों की संख्या की गणना करने के लिए किया जाता है।

<?php

namespace DashboardBundle\Twig\Extension;

use Symfony\Bridge\Doctrine\RegistryInterface;
use Symfony\Component\HttpKernel\HttpKernelInterface;
use Symfony\Component\HttpKernel\Event\GetResponseEvent;
use Symfony\Component\Security\Core\SecurityContext;

/**
 * Class DashboardExtension
 * @package DashboardBundle\Twig\Extension
 */
class DashboardExtension extends \Twig_Extension
{
    protected $doctrine;
    private $context;
   

    /**
     * DashboardExtension constructor.
     * @param RegistryInterface $doctrine
     * @param SecurityContext $context
     */
    public function __construct(RegistryInterface $doctrine,SecurityContext $context)
    {
        $this->doctrine = $doctrine;
        $this->context = $context;
    }

    /**
     * @return mixed
     */
    public function getUser()
    {
        return $this->context->getToken()->getUser();
    }

    /**
     * @return array
     */
    public function getFilters()
    {
        return array(
            new \Twig_SimpleFilter('country', array($this, 'countryFilter')),
            new \Twig_SimpleFilter('count_printer_tasks', array($this, '_countPrinterTasks')),
        );
    }


 /**
     * @param $countryCode
     * @param string $locale
     * @return mixed
     */
    public function countryFilter($countryCode,$locale = "en")
    {
        $c = \Symfony\Component\Intl\Intl::getRegionBundle()->getCountryNames($locale);

        return array_key_exists($countryCode, $c)
            ? $c[$countryCode]
            : $countryCode;
    }



    /**
     * Returns total count of printer's tasks.
     * @return mixed
     */
    public function _countPrinterTasks(){
        $count = $this->doctrine->getRepository('DashboardBundle:Task')->countPrinterTasks($this->getUser());
        return $count;
    }




    /**
     * {@inheritdoc}
     */
    public function getName()
    {
        return 'app_extension';
    }
}

इसे टहनी से कॉल करने के लिए, हमें बस नीचे के रूप में उपयोग करना होगा;

{% set printer_tasks = 0|count_printer_tasks() %}

 <tr>
    <td>Nationality</td>
    <td>
        {{ user.getnationality|country|ucwords }}
    </td>
</tr>

और इस विलोपन को अपनी bundle/resource/config/service.yml फ़ाइल में एक सेवा के रूप में घोषित करें।

services:

    app.twig_extension:
        class: DashboardBundle\Twig\Extension\DashboardExtension
        arguments: ["@doctrine", @security.context]
        tags:
            - { name: twig.extension }


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow