lambelcebur / mvc-basic-tools
Lam tools for controllers,views,helpers, plugins and more ...
dev-master
2020-01-10 07:09 UTC
Requires
- php: ^7.1
- ext-iconv: *
- ext-intl: *
- doctrine/doctrine-module: 2.*
- doctrine/doctrine-orm-module: 2.*
- laminas/laminas-mvc: ^3.0.1
- laminas/laminas-mvc-form: ^1.0
- laminas/laminas-mvc-i18n: ^1.0
- laminas/laminas-paginator: ^2.0
Suggests
- doctrine/doctrine-orm-module: DoctrineORMModule integrates Doctrine 2 ORM with Zend Framework quickly and easily.
- lambelcebur/doctrine-orm-fast-api: Quickly create an automatic API CRUD with your Doctrine ORM connection
- lambelcebur/doctrine-orm-resources: DoctrineORM Resources to Lam
- lambelcebur/materialize-css-helper: MaterializeCss Helper integration to Lam
- lambelcebur/mongodb-logger: MongoDb Logger integration to Lam
- lambelcebur/oauth2-social-client: Lam extends module from thephpleague/oauth2-client
This package is auto-updated.
Last update: 2025-02-28 00:54:02 UTC
README
Tools for views and controllers
See
Installation
Installation of this module uses composer. For composer documentation, please refer to getcomposer.org.
composer require lambelcebur/mvc-basic-tools
Then add LamBelcebur\MvcBasicTools
to your config/application.config.php
Controller Plugin
- Integrate Doctrine ORM Auth with controllers
/** @var \LamBelcebur\MvcBasicTools\Controller\Plugin\AuthenticatePlugin $authPlugin $authPlugin=$this->authenticatePlugin(); $authPlugin->authenticate('myCredential','myPassword'); // return \Laminas\Authentication\Result $authPlugin->logout(); // Clear session
Abstract Controllers
Extends your controller with more functionalities
LamBelcebur\MVCBasicTools\BaseController
LamBelcebur\MVCBasicTools\BaseRestfulController
LamBelcebur\MVCBasicTools\FormManagerController
LamBelcebur\MVCBasicTools\FormManagerRestfulController
LamBelcebur\MVCBasicTools\BaseController & LamBelcebur\MVCBasicTools\BaseRestfulController
Properties
/** @var int defined from PHP CONSTANT "DEFAULT_LIMIT_ITEMS_PER_PAGE", if constant is not defined the value is 50 */ protected $limitItemsPerPage; /** @var int defined from query param "page", by default 1*/ protected $currentPageNumber; /** @var int defined from query param "limit", by default $this->limitItemsPerPage*/ protected $itemCountPerPage;
LamBelcebur\MVCBasicTools\BaseController & LamBelcebur\MVCBasicTools\BaseRestfulController
Methods
- Create Paginator from Doctrine ORM QueryBuilder
/** * @param QueryBuilder $qb * @param bool $fetchJoinCollection * @param string|null $prefix * @param int $queryHydrationMode * @return Paginator */ public function createPaginator(QueryBuilder $qb, bool $fetchJoinCollection = false, string $prefix = null, int $queryHydrationMode = Query::HYDRATE_OBJECT): Paginator;
- Convert paginator to Array Result
/** * @param Paginator $paginator * @param bool $isJsonModel * @param array $extraParams * @return array */ public function getPaginatorArrayResult(Paginator $paginator, bool $isJsonModel = true, array $extraParams = []): array
- Compare current url with other route and redirect if not is the same
/** * @param string $routeName * @param array $routeParams * @param int $statusCode * @return HttpResponse|null */ public function checkAndRedirectUrl(string $routeName, array $routeParams = [], int $statusCode = 301): ?HttpResponse
- Get MvcTranslator
/** * @return MvcTranslator */ public function getMvcTranslator(): MvcTranslator
- Get Translator
/** * @return Translator */ public function getTranslator(): Translator
- translate method directly inside controller
/** * @param $message * @param string $textDomain * @param string|null $locale * @return string */ public function translate($message, string $textDomain = 'default', string $locale = null): string
- Get Router
/** * @return TranslatorAwareTreeRouteStack|TreeRouteStack|SimpleRouteStack|RouteStackInterface */ public function getRouter(): RouteStackInterface
- Get Doctrine ORM EntityManager
/** * @return EntityManager */ public function getEntityManager(): EntityManager
LamBelcebur\MVCBasicTools\FormManagerController & LamBelcebur\MVCBasicTools\FormManagerController
Methods
- Extends
LamBelcebur\MVCBasicTools\BaseController
- getFormManager();
- return
\Laminas\Form\FormElementManager\FormElementManagerV3Polyfill
- return
Controller Factories
LamBelcebur\MVCBasicTools\Factory\ControllerBaseControllerFactory
LamBelcebur\MVCBasicTools\Factory\ControllerBaseRestfulControllerFactory
LamBelcebur\MVCBasicTools\Factory\ControllerFormManagerControllerFactory
LamBelcebur\MVCBasicTools\Factory\ControllerFormManagerRestfulControllerFactory
View Helper
<?php use LamBelcebur\MvcBasicTools\View\Helper\BTools; /** @var BTools $bTools */ $bTools=$this->bTools(); BTools::nl2br("\n"); BTools::br2nl('<br><br>'); BTools::trim(' '); BTools::randomPassword(10); BTools::convertToUTF8('hello'); BTools::splitTextByDotOrSpace('cut this',false,3); // cut... 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' $bTools->getParams(); // return Params Plugin Controller $bTools->getPluginManager(); $bTools->getMetaBy('name','description'); // get meta name=description content $bTools->getMetaBy('property','og:locale'); // get meta property=og:locale content $bTools->getMetaByName('description','things'); // get meta name=description content, if not exist return 'things" $bTools->getMetaByProperty('og:locale'); // get meta property=og:locale content $bTools->getRouteMatch(); $bTools->getRouter(); $bTools->getFormElementManager(); $bTools->getMvcTranslator(); // Only in view $bTools->getParams()->fromRoute(); // return array params from route //Layout Or View $bTools->getParamsFromRoute(); // return array params from route $bTools->getParamFromRoute('param','default'); // return param from route or default value $bTools->getParams()->fromRoute(); // return array params from route