ctrl+shift+p filters: :st2 :st3 :win :osx :linux
浏览

Symfony2 Snippets

raulfraile 全部

Sublime Text 的一个用于 Symfony2 开发的工具包

标签 snippets

详细信息

  • 2016.03.14.21.55.43
  • github.com
  • github.com
  • 8年前
  • 1小时前
  • 12年前

安装

  • 总计 33K
  • Win 16K
  • Mac 7K
  • Linux 10K
8月6日 8月5日 8月4日 8月3日 8月2日 8月1日 7月31日 7月30日 7月29日 7月28日 7月27日 7月26日 7月25日 7月24日 7月23日 7月22日 7月21日 7月20日 7月19日 7月18日 7月17日 7月16日 7月15日 7月14日 7月13日 7月12日 7月11日 7月10日 7月9日 7月8日 7月7日 7月6日 7月5日 7月4日 7月3日 7月2日 7月1日 6月30日 6月29日 6月28日 6月27日 6月26日 6月25日 6月24日 6月23日
Windows 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0
Mac 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Linux 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

README

源码
raw.githubusercontent.com

这是一个 Sublime Text 包,包括用于进行 Symfony2 框架开发的便捷片段。

重要:本插件的 master 分支将始终与 Symfony2 的最新稳定版本保持同步。

安装

使用包控制

如果您已安装 包控制 插件,可以从中直接在 Sublime Text 中安装 Symfony2 Snippets。打开命令面板,选择“包控制:安装包”,然后搜索 Symfony2 Snippets。

不使用包控制

如果没有安装包控制,需要将此存储库的副本克隆到您的包文件夹中,如下所示

git clone https://github.com/raulfraile/sublime-symfony2 symfony2-snippets

如果您需要安装特定的插件分支(本例中的 2.0),请使用以下命令

cd symfony2-snippets
git checkout origin/2.0

快捷键

所有快捷键都以 sf 前缀开始,并且既短又直观

控制器

sfcontroller

use Symfony\Bundle\FrameworkBundle\Controller\Controller;

class DefaultController extends Controller
{
    public function indexAction()
    {
        return $this->render('.html.twig');
    }
}

sfcontrollera

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;

class DefaultController extends Controller
{
    /**
     * @Route("/", name="")
     * @Template()
     */
    public function indexAction()
    {

    }
}

sfaction

public function indexAction()
{
    return $this->render('.html.twig');
}

sfactiona

/**
 * @Route("/", name="")
 * @Template()
 */
public function indexAction()
{

}

sfem

$em = $this->getDoctrine()->getManager();

sfrepo

$em->getRepository('Bundle:Repository');

sfforward

$this->forward('Bundle:Controller:action', array(), array());

sfredirect

$this->redirect($this->generateUrl('route', array()));

sfrender

$this->render('Bundle:Folder:template.html.twig', array());

sfgetsession

$this->getRequest()->getSession();

sfsetflash

$this->get('session')->getFlashBag()->add('type', 'message');

sfdump

\Doctrine\Common\Util\Debug::dump();

命令

sfcommand

use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;

class DefaultCommand extends Command
{
    /**
     * {@inheritdoc}
     */
    protected function configure()
    {
        $this
            ->setName('default:command')
            ->setDescription('Default description')
        ;
    }

    /**
     * {@inheritdoc}
     */
    protected function execute(InputInterface $input, OutputInterface $output)
    {

    }
}

sfcommandca

use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;

class DefaultCommand extends ContainerAwareCommand
{
    /**
     * {@inheritdoc}
     */
    protected function configure()
    {
        $this
            ->setName('default:command')
            ->setDescription('Default description')
        ;
    }

    /**
     * {@inheritdoc}
     */
    protected function execute(InputInterface $input, OutputInterface $output)
    {

    }
}

Doctrine

sfentityclass

use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;

/**
 * @ORM\Entity(repositoryClass="")
 * @ORM\Table(name="")
 */
class Entity
{
    /**
     * @ORM\Id()
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;
}

sfdocumentclass

use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB;
use Symfony\Component\Validator\Constraints as Assert;

/**
 * @MongoDB\Document(collection="", repositoryClass="")
 */
class Document
{
    /**
     * @MongoDB\Id()
     */
    protected $id;
}

sfrepository

use Doctrine\ORM\EntityRepository;

class EntityNameRepository extends EntityRepository
{
}

sfgetset 只需输入您的变量名(例如 firstName),片段将自动命名函数(getFirstName)。

/**
* Get 
* @return  
*/
public function get()
{
    return $this->;
}

/**
* Set 
* @return $this
*/
public function set($)
{
    $this-> = $;
    return $this;
}

注解

触发片段后,只需输入您的变量名,它将自动设置注解中的名称(如果您输入 'firstName',则变量将被命名为 'firstName',在注解中名称为 'first_name')。

sfentity

/**
 * @ORM\Entity()
 * @ORM\Table(name="name")
 */

sfid字段

/**
 * @ORM\Column(name="id", type="integer", nullable=false)
 * @ORM\Id()
 * @ORM\GeneratedValue(strategy="IDENTITY")
 */
 private $id;

sfstring字段

/**
 * @ORM\Column(name="", type="string", length=255)
 */
 private $;

sfdecimal字段

/**
 * @ORM\Column(name="", type="decimal", scale=2)
 */
 private $;

sftext字段

/**
 * @ORM\Column(name="", type="text")
 */
 private $;

sfinteger字段

/**
 * @ORM\Column(name="", type="integer")
 */
 private $;

sfbool字段

/**
 * @ORM\Column(name="", type="boolean")
 */
 private $;

sfsmallint字段

/**
 * @ORM\Column(name="", type="smallint")
 */
 private $;

sfbigint字段

/**
 * @ORM\Column(name="", type="bigint")
 */
 private $;

sfdatetime字段

/**
 * @ORM\Column(name="", type="datetime")
 */
 private $;

sfdate字段

/**
 * @ORM\Column(name="", type="date")
 */
 private $;

sftime字段

/**
 * @ORM\Column(name="", type="time")
 */
 private $;

sffloat字段

/**
 * @ORM\Column(name="", type="float")
 */
 private $;

sfarray字段

/**
 * @ORM\Column(name="", type="array")
 */
 private $;

sfobject字段

/**
 * @ORM\Column(name="", type="object")
 */
 private $;

表单

sfform

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;

class NameType extends AbstractType
{
    /**
     * {@inheritdoc}
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {

    }

    /**
     * {@inheritdoc}
     */
    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => '',
        ));
    }

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

sfdatatransformer

use Symfony\Component\Form\DataTransformerInterface;
use Symfony\Component\Form\Exception\UnexpectedTypeException;
use Symfony\Component\Form\Exception\TransformationFailedException;

class NameTransformer implements DataTransformerInterface
{
    /**
     * {@inheritdoc}
     */
    public function transform($value)
    {

    }

    /**
     * {@inheritdoc}
     */
    public function reverseTransform($value)
    {

    }
}

Twig

sftwigextension

class NameExtension extends \Twig_Extension
{
    /**
     * {@inheritdoc}
     */
    public function getFilters()
    {
        return array();
    }

    /**
     * {@inheritdoc}
     */
    public function getTests()
    {
        return array();
    }

    /**
     * {@inheritdoc}
     */
    public function getFunctions()
    {
        return array();
    }
}

sftwigform

<form class="" action="{{ path('') }}" method="post" {{ form_enctype(form) }}>
    {{ form_errors(form) }}
    {{ form_widget(form) }}
    <input type="submit" value="Submit" />
</form>

sftwigrow

{{ form_row(form.) }}

转译

{% trans %}{% endtrans %}

模板

sfasset

{{ asset('bundles/')}}

sfasseticjs

{% javascripts '@/Resources/public/js/*' %}
    <script type="text/javascript" src="{{ asset_url }}"></script>
{% endjavascripts %}

sfasseticcss

{% stylesheets 'bundles//css/*' filter='cssrewrite' %}
    <link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}

验证

sfconstraint

use Symfony\Component\Validator\Constraint;

/**
 * @Annotation
 */
class NameConstraint extends Constraint
{
    public $message = '';
}

sfconstraintvalidator

use Symfony\Component\Validator\Constraint;
use Symfony\Component\Validator\ConstraintValidator;

class NameValidator extends ConstraintValidator
{
    public function validate($value, Constraint $constraint)
    {

    }
}

DependencyInjection

sfdiconfiguration

use Symfony\Component\Config\Definition\Builder\TreeBuilder;
use Symfony\Component\Config\Definition\ConfigurationInterface;

class Configuration implements ConfigurationInterface
{
    public function getConfigTreeBuilder()
    {
        $treeBuilder = new TreeBuilder();
        $rootNode = $treeBuilder->root('bundle_name');

        $rootNode
            ->children()
                ->scalarNode('enabled')
                    ->setInfo('Enable the container extension')
                    ->setDefault(true)
                ->end()
            ->end()
        ;

        return $treeBuilder;
    }
}

sfdiextension

use Symfony\Component\Config\FileLocator;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
use Symfony\Component\HttpKernel\DependencyInjection\Extension;

class BundleExtension extends Extension
{
    public function load(array $configs, ContainerBuilder $container)
    {
        $config = $this->processConfiguration(new Configuration(), $configs);
        if (false === $config['enabled']) {
            return;
        }

        $loader = new XmlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
        $loader->load('services.xml');
    }
}

sfdiservices

<?xml version="1.0" ?>

<container xmlns="http://symfony.com/schema/dic/services"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">

    <services>
        <service id="id" class="class" />
    </services>
</container>

YAML

sfroute

route_name:
    path:   /
    defaults:  { _controller: Bundle:Controller:action }

贡献

如果您遗漏了什么,可以随意克隆此存储库并发送一个PR,包含您针对Symfony2的出色片段 :)

贡献者列表