Есть ли PHP веб-фреймворк, который не использует шаблоны?
Я ищу фреймворк PHP, который позволил бы мне создавать HTML не через систему шаблонов, такую как Smarty или Twig (которая мне действительно не нравится), но непосредственно из моих классов представления, с помощью таких методов:
$this->elementStart('div', array('id' => 'header',
'class' => 'cls'));
...
$this->elementEnd('div');
StatusNet делает это, но на самом деле это не универсальная структура. Есть ли какие-либо структуры, которые работают таким образом?
3 ответа
Вы можете проверить Yii. Нет такой системы шаблонов, как Smarty или что-то в этом роде, у вас есть только файлы представления с HTML и любые переменные PHP, которые вы передаете из своих контроллеров.
РЕДАКТИРОВАТЬ: Вот старый пример, который я нашел, не было ссылки, поэтому я просто вставил. Материал, ссылающийся на "виджет" и т. Д. - это просто компоненты фреймворка, а не материал движка шаблонов.
<!-- blueprint CSS framework -->
<link rel="stylesheet" type="text/css" href="<?php echo Yii::app()->request->baseUrl; ?>/css/screen.css" media="screen, projection" />
<link rel="stylesheet" type="text/css" href="<?php echo Yii::app()->request->baseUrl; ?>/css/print.css" media="print" />
<!--[if lt IE 8]>
<link rel="stylesheet" type="text/css" href="<?php echo Yii::app()->request->baseUrl; ?>/css/ie.css" media="screen, projection" />
<![endif]-->
<link rel="stylesheet" type="text/css" href="<?php echo Yii::app()->request->baseUrl; ?>/css/main.css" />
<link rel="stylesheet" type="text/css" href="<?php echo Yii::app()->request->baseUrl; ?>/css/form.css" />
<title><?php echo CHtml::encode($this->pageTitle); ?></title>
</head>
<body>
<div class="container" id="page">
<div id="header">
<div id="logo"><?php echo CHtml::encode(Yii::app()->name); ?></div>
</div><!-- header -->
<div id="mainmenu">
<?php $this->widget('zii.widgets.CMenu',array(
'items'=>array(
array('label'=>'Home', 'url'=>array('/site/index')),
array('label'=>'About', 'url'=>array('/site/page', 'view'=>'about')),
array('label'=>'Contact', 'url'=>array('/site/contact')),
array('label'=>'Login', 'url'=>array('/site/login'), 'visible'=>Yii::app()->user->isGuest),
array('label'=>'Logout ('.Yii::app()->user->name.')', 'url'=>array('/site/logout'), 'visible'=>!Yii::app()->user->isGuest)
),
)); ?>
</div><!-- mainmenu -->
<?php if(isset($this->breadcrumbs)):?>
<?php $this->widget('zii.widgets.CBreadcrumbs', array(
'links'=>$this->breadcrumbs,
)); ?><!-- breadcrumbs -->
<?php endif?>
<?php echo $content; ?>
<div id="footer">
Copyright © <?php echo date('Y'); ?> by My Company.<br/>
All Rights Reserved.<br/>
<?php echo Yii::powered(); ?>
</div><!-- footer -->
</div><!-- page -->
</body>
</html>
Да, есть рамки Yii.. Это позволяет оба. Если вы не хотите применять какой-либо шаблонный вызов, используйте renderPartial() вместо render(). Пожалуйста, обратитесь к http://www.yiiframework.com/doc/guide/1.1/en/basics.view
На данный момент очень быстрый DooPHP. И вы можете написать свой собственный шаблон над PHP. Но я не вижу смысла.