belcebur/belcebur-basic

来自 ZF2 + Doctrine + Gedmo 扩展的基本工具 / ZF2 + Doctrine + Gedmo 扩展的各种实用工具

1.1.0 2017-08-11 12:09 UTC

This package is auto-updated.

Last update: 2024-09-26 17:36:48 UTC


README

需要 PHP >=7.0

  • Nl2brFilter

  • 视图助手

  • 抽象实体

  • 抽象 Gedmo 实体

  • 抽象仓库

  • 抽象 Gedmo 可翻译仓库

Nl2brFilter

将过滤器添加到表单中

在你的输入过滤器配置中,添加 nl2br 过滤器以过滤结果。一个示例表单

<?php
namespace Application\Form;

use Zend\InputFilter;
use Zend\Form\Form;

class Foo extends Form implements
    InputFilter\InputFilterProviderInterface
{
    public function __construct($name = null)
    {
        parent::__construct($name);

        $this->add(array(
            'name'    => 'text',
            'options' => array(
                'label' => 'Text'
            ),
            'attributes' => array(
                'type'  => 'textarea',
            ),
        ));
    }

    public function getInputFilterSpecification()
    {
        return array(
            'text'  => array(
                'required' => true,
                'filters'  => array(
                    array('name' => 'nl2br'),
                ),
            ),
        );
    }
}

视图助手

在视图内部 // 在视图内部

<?php
/**
* @var \BelceburBasic\View\Helper\BTools $btools
*/

$btools=$this->bTools();

$btools->getCurrentUrl(array $extraParams); //Get URL with params and add new params

$btools->convertUrlQuery("test=1&temp=2"); //Returns the url query as associative array -> array("test"=>1,"temp"=>2);

$btools->arrayToAttributes(array("test"=>1,"temp"=>2)); // Convert Array to html attributes -> test="1" temp="2";

$btools->getParams(); // Get RouteMatch Params

$btools->getParam($name,$default); // Get RouteMatch Param or Default

$btools->slugify("حولا كيو تل"); //        ->           'hwla-kyw-tl'
$btools->slugify("你好,这样的"); //             ->   'ni-hao-zhe-yang-de'
$btools->slugify("그러한 안녕하세요"); //          ->       'geuleohan-annyeonghaseyo'
$btools->slugify("त्यस्तो नमस्ते");  //    ->           'tyasto-namas'
$btools->slugify("hola que tal"); //       ->           'hola-que-tal'
$btools->slugify("привет, что такой");//   ->               'privet-cto-takoj'

Same with Static Method

BTools::SlugifyStaticPro("حولا كيو تل"),
BTools::SlugifyStaticPro("你好,这样的"),
BTools::SlugifyStaticPro("그러한 안녕하세요"),
BTools::SlugifyStaticPro("त्यस्तो नमस्"),
BTools::SlugifyStaticPro("hola que tal"),
BTools::SlugifyStaticPro("привет, что такой")


// And Getters from:


    /**
     *
     * @var \Zend\Http\PhpEnvironment\Request
     */
    protected $request;
    /**
     *
     * @var \Zend\Mvc\MvcEvent
     */
    protected $event;

    /**
     * @var \Doctrine\ORM\EntityManager
     */
    protected $em;

    /**
     * @var \Zend\Mvc\I18n\Translator
     */
    protected $translator;


    /**
     * @var \Zend\ServiceManager\ServiceManager
     */
    protected $serviceManager;

    /**
     * @var \Zend\View\HelperPluginManager
     */
    protected $pluginManager;


    /**
     * @var \Zend\Mvc\Application
     */
    protected $app;

创建其他 Zend 导航

在配置文件内部。 / 在一个配置文件中

http://framework.zend.com/manual/current/en/tutorials/tutorial.navigation.html

<?php
return array(
    'navigation'      => array(
        'bAdmin'  => array(), // New Navigation
        'default' => array(), //Standar Navigation
    )
);

在视图内部 / 在视图内部

<?php echo $this->navigation()->breadcrumbs('admin'); ?>  // To Create Breadcrumb

<?php echo $this->navigation()->menu('admin')->setUlClass('nav navbar-nav'); ?> // To Create Menu

抽象 Doctrine 实体 / Doctrine 实体抽象

向你的实体添加新的搜索方法

向你的实体添加新的搜索方法

示例自定义仓库

<?php


namespace Application\Entity;

use BelceburBasic\Resource\Doctrine\Entity;
use Doctrine\ORM\Mapping as ORM;

/**
 * Class Entity
 *
 * @package Application\Entity
 */
class User extends Entity {

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

     /**
     * @var string
     *
     * @ORM\Column(name="email", type="string", length=100, nullable=false)
     */
    protected $email;

}

示例自定义仓库带有 Gedmo 扩展可翻译

Gedmo 扩展可翻译 https://github.com/Atlantic18/DoctrineExtensions

<?php


namespace Application\Entity;

use BelceburBasic\Resource\Doctrine\Gedmo\EntityTranslatable;
use Doctrine\ORM\Mapping as ORM;

/**
 * Class Entity
 *
 * @package Application\Entity
 */
class User extends EntityTranslatable {

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

     /**
      * @var string
      *
      * @Gedmo\Translatable()
      * @ORM\Column(name="name", type="string", length=100, nullable=false)
      */
     protected $name;

}

包含的方法/包含的方法

只有 GEDMO

getTranslatableLocale() setTranslatableLocale()

setFromArray(array $data)

 ----
 <?php
/** Update User */
$user=$user->setFromArray(array('email'=> 'test@test.com'));
/** Create New User */
 $user=User::setFromArray(array('email'=> 'test@test.com'));
----

fieldToSetterMethod($propertyName)

<?php
$user->fieldToSetterMethod('email')
输出

setEmail

fieldToGetterMethod($propertyName)

<?php
$user->fieldToGetterMethod('email')
输出

getEmail

toCamelCase

<?php
$user->toCamelCase('email_and_name')
输出

emailAndName

fromCamelCase

<?php
$user->toCamelCase('emailAndName')
输出

email_and_name

getProperty($propertyName)

<?php
$user->getProperty('email') == $user->getEmail() == $user->email
输出

toArray

<?php

$array= $user->toArray();
输出
<?php
array(
    'id' => 1,
    'name' => 'David',
    'email' => ...,
)

extractGetMethods

列出获取器

<?php
array(
    getId
    getName
    getEmail
)

extractSetMethods

列出设置器

<?php
array(
    setId
    setName
    setEmail
)

抽象仓库 / 抽象仓库

向你的仓库添加新的搜索方法

向你的仓库添加新的搜索方法

示例自定义仓库

<?php


namespace Application\Repository;

use BelceburBasic\Resource\Doctrine\EntityRepository;

/**
 * Class Event
 *
 * @package Application\Repository
 */
class Event extends EntityRepository {
}

示例 Gedmo 翻译

如果你使用 Gedmo 扩展可翻译 https://github.com/Atlantic18/DoctrineExtensions,则从 EntityRepositoryTranslatable 扩展你的仓库并添加新的搜索方法。不需要包含 Gedmo Walker。

如果你使用 Gedmo 扩展可翻译 https://github.com/Atlantic18/DoctrineExtensions,则从 EntityRepositoryTranslatable 扩展你的仓库并添加新的搜索方法。不需要包含 Gedmo Walker。

<?php

namespace Application\Repository;

use BelceburBasic\Resource\Doctrine\Gedmo\EntityRepositoryTranslatable;

/**
 * Class User
 *
 * @package Application\Repository
 */
class User extends EntityRepositoryTranslatable
{
}

包含的方法/包含的方法

  • findNotBy(array $criteria, array $orderBy = NULL, $limit = NULL, $offset = NULL)

  • findOneNotBy(array $criteria)

  • findOrLikeBy(array $orCriteria, array $orderBy = NULL, $limit = NULL, $offset = NULL, $andCriteria = NULL)

  • findOneOrLikeBy(array $criteria)

  • findOneBy(array $criteria) //Only for Gedmo Extensions (Include Gedmo Walker on query)

  • findOneLikeBy(array $criteria)

  • findNotLikeBy(array $criteria, array $orderBy = NULL, $limit = NULL, $offset = NULL)

  • findBy(array $criteria, array $orderBy = NULL, $limit = NULL, $offset = NULL)

  • findLikeBy(array $criteria, array $orderBy = NULL, $limit = NULL, $offset = NULL)