承接 chh/meta-template 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

chh/meta-template

Composer 安装命令:

composer require chh/meta-template

包简介

Templating solution with adapters to many engines.

关键字:

README 文档

README

A library which provides adapters to different PHP templating engines

Install

MetaTemplate follows the PSR-0 standard for class loading, so its classes can be loaded with every compliant autoloader, such as Zend_Loader or the Symfony Classloader.

Installation is easy, just register the MetaTemplate namespace with your autoloader and point it to the directory where you copied the contents of the lib directory to.

Basic Usage

Most of the time you will be consuming engines via the Template class. It provides some methods, which take a filename and return a template instance.

MetaTemplate ships with these adapters/engines by default:

  • PHPTemplate, mapped to .php and .phtml
  • PhpSass, mapped to .sass and .scss
  • MarkdownTemplate (requires php-markdown to be loaded), mapped to .md and .markdown
  • LessTemplate (requires Less to be installed via node), mapped to .less (Requires Symfony_Process 2)
  • MustacheTemplate (requires phly_mustache), mapped to .mustache

The MetaTemplate\Template class has a static create method, which creates template instances from a given path.

For example:

<?php

use MetaTemplate\Template;

$template = Template::create('/path/to/foo.phtml');
echo get_class($template);
// => "\MetaTemplate\Template\PHPTemplate"

All templates implement the \MetaTemplate\Template\TemplateInterface, which provides a render method which, you probably guessed it, returns the rendered contents.

The render method takes two arguments, which are both optional:

  1. $context: The template's context, in most engines this is what $this inside the template script refers to.
  2. $locals: A array, which defines the local variables available in the template script.

These two arguments allow to inject the data into the template script.

If the templating engine does not have to support contexts or locals, these two arguments are simply ignored. This is the case with the Markdown and Less engines.

Digging one layer deeper

If want to setup all engine mappings up by yourself and have no default setup of Engines, then the MetaTemplate\Util\EngineRegistry is for you.

This class simply provides the instance behind the static methods of the MetaTemplate\Template class.

To map a template class to one or more file extensions, just call the register method the same way you would on the Template class:

$registry = new \MetaTemplate\Util\EngineRegistry;
$registry->register('\\MetaTemplate\\Template\\LessTemplate', 'less');

You can then use the create method to create new Template instances for the provided path.

Writing your own engines

As previously noted, all templating engines need to implement the MetaTemplate\Template\TemplateInterface. Though, there is the MetaTemplate\Template\Base class, which you can inherit from, which handles some redundant aspects, such as template data loading.

The Base class defines a prepare method, which lets you hook into the template initialization. This method is called before the constructor returns.

Your template's content is loaded into the $data property.

Look at the supplied templating engines, if you need some examples.

统计信息

  • 总下载量: 2.76k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 4
  • 点击次数: 0
  • 依赖项目数: 2
  • 推荐数: 0

GitHub 信息

  • Stars: 4
  • Watchers: 1
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2011-12-29

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固