All Projects → dinhquochan → laravel-twig

dinhquochan / laravel-twig

Licence: MIT license
Twig for Laravel Framework

Programming Languages

PHP
23972 projects - #3 most used programming language
Twig
543 projects

Projects that are alternatives of or similar to laravel-twig

mautic-advanced-templates-bundle
Plugin extends default email template capabilities with TWIG block so you can use advanced scripting techniques like conditions, loops etc
Stars: ✭ 63 (+293.75%)
Mutual labels:  twig
laravel-barion
A simple Laravel wrapper for the Barion payment API
Stars: ✭ 13 (-18.75%)
Mutual labels:  laravel-package
laravel-package
Laravel package template
Stars: ✭ 31 (+93.75%)
Mutual labels:  laravel-package
MostGenerator
Transformation cartridges for generating Symfony bundles from ModuleStudio models.
Stars: ✭ 21 (+31.25%)
Mutual labels:  twig
translate-laravel
Translate your Laravel website easily.
Stars: ✭ 36 (+125%)
Mutual labels:  laravel-package
correios-consulta
Buscar informações de serviços dos correios diretamente nos sites deles, sem utilizar api de terceiros.
Stars: ✭ 155 (+868.75%)
Mutual labels:  laravel-package
ErrorHeroModule
💎 A Hero for your Zend Framework/Laminas, and Expressive/Mezzio application to log ( DB and Mail ) and handle php errors & exceptions during Mvc process/between request and response
Stars: ✭ 47 (+193.75%)
Mutual labels:  twig
qqmap-region
腾讯位置服务中国标准行政区划数据 SDK
Stars: ✭ 22 (+37.5%)
Mutual labels:  laravel-package
twig-translation
A Twig Translation Extension
Stars: ✭ 15 (-6.25%)
Mutual labels:  twig
front-matter
The most featured front matter (yaml, json, neon, toml) parser and dumper for PHP.
Stars: ✭ 23 (+43.75%)
Mutual labels:  twig
artisan-remote
Artisan Remote is a package for Laravel to interact with your Artisan Commands via an HTTP API.
Stars: ✭ 69 (+331.25%)
Mutual labels:  laravel-package
awesome-landlord
A simple, single database multi-tenancy solution for Laravel 5.2+
Stars: ✭ 41 (+156.25%)
Mutual labels:  laravel-package
cache-extra
Template fragment cache support for Twig
Stars: ✭ 24 (+50%)
Mutual labels:  twig
Symfony-4-by-Samples
Symfony 4 by Samples is a personal project in which I will be creating small demos with tutorial in which to learn the symfony framework 4. Each of the samples contains a README.md file that indicates the purpose of the sample plus an step by step guide to reproduce it. Basic topics, login and register form, authentication, webpack encore, sass…
Stars: ✭ 40 (+150%)
Mutual labels:  twig
laravel-json-api
Integrate JSON:API resources on Laravel
Stars: ✭ 17 (+6.25%)
Mutual labels:  laravel-package
menus
Laravel Enso main menu manager, for easy management of the application menus straight from the interface, whether that means adding, removing or reordering them
Stars: ✭ 15 (-6.25%)
Mutual labels:  laravel-package
super-basic-auth
🔒 A lightweight package to add basic authentication to your Laravel app.
Stars: ✭ 22 (+37.5%)
Mutual labels:  laravel-package
enum
A workaround for the missing php enum type
Stars: ✭ 49 (+206.25%)
Mutual labels:  twig
laravel-php-k8s
Just a simple port of renoki-co/php-k8s for easier access in Laravel
Stars: ✭ 71 (+343.75%)
Mutual labels:  laravel-package
Laravel-Crud-Generator
A Simple Laravel Library that allows to create crud operation with a single command
Stars: ✭ 20 (+25%)
Mutual labels:  laravel-package

Laravel Twig

Latest Version on Packagist tests Total Downloads

Allows you to use Twig in Laravel.

Requirements

  • PHP >= 7.3.0
  • Laravel >= 6.x

Installation

You can install the package via composer:

composer require dinhquochan/laravel-twig

If you don't use auto-discovery, add the Service Provider to the providers array in config/app.php

\DinhQuocHan\Twig\TwigServiceProvider::class,

If you want to use the facade to extended twig extensions, add this to your facades in app.php:

'Twig' => \DinhQuocHan\Twig\Facades\Twig::class,

So, we will use Artisan to add the new twig config file:

php artisan vendor:publish --provider="DinhQuocHan\Twig\TwigServiceProvider"

Usage

You call the Twig template like you would any other view:

// Normal (template.html.twig or template.css.twig or template.twig)
return view('template', ['some_variable' => 'some_values']);

// With vender namespace
return view('vendor_namespace::template', $data);

Read more in Twig for Template Designers or Laravel Views.

Extending Twig

Laravel Twig allows you to define your own custom filters, functions, globals, token parsers or extensions.

The following example creates a {{ product.price|money_format }} filter which formats a given $product->price:

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use DinhQuocHan\Twig\Facades\Twig;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Register bindings in the container.
     *
     * @return void
     */
    public function register()
    {
        //
    }

    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        Twig::addFilter(new TwigFilter('money_format', function ($price) {
            return sprintf('%d %s', number_format($price), 'US$');
        }));
    }
}

Available methods:

  • Twig::addGlobal(string $name, $value) Creating a global
  • Twig::addFilter(\Twig\TwigFilter $filter) Creating a filter
  • Twig::addFunction(\Twig\TwigFunction $function) Creating a function
  • Twig::addTest(\Twig\TwigTest $test) Creating a test
  • Twig::addTokenParser(\Twig\TokenParser\TokenParserInterface $parser) Creating a token parser
  • Twig::addExtension(\Twig\Extension\ExtensionInterface $extension) Creating a extension

Read more in Twig for Template Designers.

Built-in Laravel Extensions

  • \DinhQuocHan\Twig\Extensions\Arr::class
  • \DinhQuocHan\Twig\Extensions\Auth::class
  • \DinhQuocHan\Twig\Extensions\Config::class
  • \DinhQuocHan\Twig\Extensions\Dump::class
  • \DinhQuocHan\Twig\Extensions\Gate::class
  • \DinhQuocHan\Twig\Extensions\Path::class
  • \DinhQuocHan\Twig\Extensions\Request::class
  • \DinhQuocHan\Twig\Extensions\Session::class
  • \DinhQuocHan\Twig\Extensions\Str::class
  • \DinhQuocHan\Twig\Extensions\Translator::class
  • \DinhQuocHan\Twig\Extensions\Url::class

Functions:

  • array_*, data_*, head, last
  • auth, auth_check, auth_guest, auth_user, auth_guard
  • config, config_get, config_has
  • dump, dd
  • can, cant, cannot, allows, denies
  • *_path, mix
  • request, request_has, request_exists, request_filled, request_input, request_query, request_is, current_url, current_full_url, current_full_url_with_query, old
  • session, session_has, session_get, session_put, session_pull, session_forget, csrf_token, csrf_field, method_field
  • str_* (All the Str::* methods, snake_case, camel_case, studly_case, kebab_case)
  • __, trans, trans_choice
  • action, asset, url, route, secure_url, secure_asset

Filters:

  • *_path, mix
  • str_* (All the Str::* methods, snake_case, camel_case, studly_case, kebab_case)
  • __, trans, trans_choice
  • action, asset, url, route, secure_url, secure_asset

Global variables:

  • app: the Illuminate\Foundation\Application::class object

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email [email protected] instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].