SYMFONY2 可慢动作最小配置


SYMFONY2 Sluggable minimal configuration

我安装了与该链接相同的StofDoctrineExtensionsBundle。相比之下,页面呈现速度非常慢,因为大约 5 分钟。我只需要用户实体(FOSUSERBUNDLE)中的可慢功能。我认为在没有某些元素的情况下,它的工作速度会更快。

使用此软件包只能慢速运行的最低配置是什么。是否需要所有映射(监视链接)?

我需要 config.yml 示例。

编辑添加侦听器后,我的 config.yml 看起来:

    ...
    orm:
        default_entity_manager: default
        auto_generate_proxy_classes: "%kernel.debug%"
        entity_managers:
            default:
                connection: default
                mappings:
                    AppBundle:  ~
                    gedmo_translatable:
                        type: annotation
                        prefix: Gedmo'Translatable'Entity
                        dir: "%kernel.root_dir%/../vendor/gedmo/doctrine-extensions/lib/Gedmo/Translatable/Entity"
                        alias: GedmoTranslatable # (optional) it will default to the name set for the mapping
                        is_bundle: false
                    gedmo_translator:
                        type: annotation
                        prefix: Gedmo'Translator'Entity
                        dir: "%kernel.root_dir%/../vendor/gedmo/doctrine-extensions/lib/Gedmo/Translator/Entity"
                        alias: GedmoTranslator # (optional) it will default to the name set for the mapping
                        is_bundle: false
                    gedmo_loggable:
                        type: annotation
                        prefix: Gedmo'Loggable'Entity
                        dir: "%kernel.root_dir%/../vendor/gedmo/doctrine-extensions/lib/Gedmo/Loggable/Entity"
                        alias: GedmoLoggable # (optional) it will default to the name set for the mappingmapping
                        is_bundle: false
                    gedmo_tree:
                        type: annotation
                        prefix: Gedmo'Tree'Entity
                        dir: "%kernel.root_dir%/../vendor/gedmo/doctrine-extensions/lib/Gedmo/Tree/Entity"
                        alias: GedmoTree # (optional) it will default to the name set for the mapping
                        is_bundle: false
...
stof_doctrine_extensions:
    class:
        sluggable:      ~
...

我的实体与蛞蝓:

namespace AppBundle'Entity;
use Gedmo'Mapping'Annotation as Gedmo;
use Doctrine'ORM'Mapping as ORM;
/**
 * Profile
 *
 * @ORM'Table(name="profile")
 * @ORM'Entity(repositoryClass="AppBundle'Repository'ProfileRepository")
 */
class Profile
{
    /**
     * @var int
     *
     * @ORM'Column(name="id", type="integer")
     * @ORM'Id
     * @ORM'GeneratedValue(strategy="AUTO")
     */
    private $id;
    /**
     * @var string
     *
     * @ORM'Column(name="name", type="string", length=150, nullable=true)
     */
    private $name;
     /**
     * @Gedmo'Slug(fields={"title", "name"})
     * @ORM'Column(length=128, unique=true)
     */
    private $slug;
    /**
     * @var string
     *
     * @ORM'Column(name="city", type="string", length=150, nullable=true)
     */
    private $city;
    /**
     * @var string
     *
     * @ORM'Column(name="voivodeship", type="string", length=50, nullable=true)
     */
    private $voivodeship;
    /**
     * @var string
     *
     * @ORM'Column(name="description", type="text", nullable=true)
     */
    private $description;
    /**
     * @var string
     *
     * @ORM'Column(name="category", type="string", length=100, nullable=true)
     */
    private $category;

     /**
     *
     * @ORM'OneToOne(targetEntity="User", cascade={"persist"})
     * @ORM'JoinColumn(name="user_id", referencedColumnName="id", nullable=true)
     */
    protected $user;
    /**
     * Get id
     *
     * @return int
     */
    public function getId()
    {
        return $this->id;
    }
    /**
     * Set name
     *
     * @param string $name
     *
     * @return Profile
     */
    public function setName($name)
    {
        $this->name = $name;
        return $this;
    }
    /**
     * Get name
     *
     * @return string
     */
    public function getName()
    {
        return $this->name;
    }
    /**
     * Set city
     *
     * @param string $city
     *
     * @return Profile
     */
    public function setCity($city)
    {
        $this->city = $city;
        return $this;
    }
    /**
     * Get city
     *
     * @return string
     */
    public function getCity()
    {
        return $this->city;
    }
    /**
     * Set voivodeship
     *
     * @param string $voivodeship
     *
     * @return Profile
     */
    public function setVoivodeship($voivodeship)
    {
        $this->voivodeship = $voivodeship;
        return $this;
    }
    /**
     * Get voivodeship
     *
     * @return string
     */
    public function getVoivodeship()
    {
        return $this->voivodeship;
    }
    /**
     * Set description
     *
     * @param string $description
     *
     * @return Profile
     */
    public function setDescription($description)
    {
        $this->description = $description;
        return $this;
    }
    /**
     * Get description
     *
     * @return string
     */
    public function getDescription()
    {
        return $this->description;
    }
    /**
     * Set category
     *
     * @param string $category
     *
     * @return Profile
     */
    public function setCategory($category)
    {
        $this->category = $category;
        return $this;
    }
    /**
     * Get category
     *
     * @return string
     */
    public function getCategory()
    {
        return $this->category;
    }
    /**
     * Set user
     *
     * @param 'AppBundle'Entity'User $user
     *
     * @return Profile
     */
    public function setUser('AppBundle'Entity'User $user = null)
    {
        $this->user = $user;
        return $this;
    }
    /**
     * Get user
     *
     * @return 'AppBundle'Entity'User
     */
    public function getUser()
    {
        return $this->user;
    }
     /**
     * Get slug
     *
     * @return string
     */
     public function getSlug()
    {
        return $this->slug;
    }
}

现在网站没有生成。刷新的数据库,没有任何帮助

你只需要激活可慢动作侦听器:

    # app/config/config.yml
stof_doctrine_extensions:
    class:
        sluggable:      ~

并创建您的 slug 属性:

<?php
namespace Entity;
use Gedmo'Mapping'Annotation as Gedmo;
use Doctrine'ORM'Mapping as ORM;
/**
 * @ORM'Table(name="articles")
 * @ORM'Entity
 */
class Entity
{
    ...
    /**
     * @Gedmo'Slug(fields={"username"})
     * @ORM'Column(length=128, unique=true)
     */
    private $slug;
    ...
}

我已经从阿尔萨斯的答案中修改了侦听器定义,它现在可以工作了。

# app/config/config.yml
stof_doctrine_extensions:
default_locale: en
orm:
    default:
        tree: false
        timestampable: false
        sluggable: true
        translatable: false