【问题标题】:HTML5Boilerplate with Yii Framework带有 Yii 框架的 HTML5Boilerplate
【发布时间】:2012-02-14 07:13:13
【问题描述】:

有没有人设法将 HTML5 Boilerplate 集成到 YII PHP 框架中(特别是文件夹结构和构建过程)?

【问题讨论】:

  • 为什么不用 HTML5 Boilerplate 进行配置?
  • @Zuo - 你能解释一下吗?
  • @user1151271 由于我对样板的了解有限,我认为您可以在样板项目的文件夹路径(js/css/images)上进行配置,以使用样板的构建工具功能。对于 index.html,只需将其与 yii 项目的主布局文件一起使用即可。

标签: php html build-process yii boilerplate


【解决方案1】:

Boilerplate 建议在向头部添加样式时使用 @import。

<style>@import(/example.css);</style>

Yii 使用 ClientScript 模型添加

<link type="text/css" src="/example.css" />

使用 Yii::app()->clientScript 模型来注册文件。 Yii 允许您根据需要为每个控制器或每个视图注册脚本文件。因此,您的 http 请求可能很少。我建议在主布局中注册所需的脚本/css,并根据需要添加其他脚本

Yii::app()->clientScript->registerScriptFile();

Yii 基于 MVC 模型。 V 用于查看。视图文件夹包含您的模型和控制器将根据数据类型调整的 html 元素。在视图文件夹中 Yii 使用 layout 文件夹来定义布局。

$this->layout = 'main'; 

该行将查找:

Protected -> views -> layout -> main.php

布局文件夹应包含 main、_htmlHead、_header 和 _footer。 renderPartial 将用于渲染不同的布局部分。这就像 HTML 的 php 包含。 $this->render 或 $this->renderPartial 的第二个参数用于将数据传递给视图。例如导航数据:

$this->renderPartial('_footer', array('nav'=>array('/link/'=>'Link Name'))); 

在 _htmlHead 中使用 Yii::app()->clientScript 注册所需的元素。如果您想使用不同版本的 jQuery,请使用 ScriptMap 模型,不要注册 jQuery 两次。 Yii 的 coreScript、验证和分页都是基于 jQuery 的。

$cs = Yii::app()->clientScript;
$cs->registerCssFile('/css/base.css'); 
$cs->registerScriptFile('/js/base.js', CClientScript::POS_END);
/* Load Script at END of DOM tree: CClientScript::POS_END */

http://www.yiiframework.com/doc/api/1.1/CClientScript

过去我在 Yii 中使用 config.php 文件来设置 assetsLocaion 参数。如果我移动我的资产,它不会破坏网站。

Yii::app()->clientScript->registerScriptFile(Yii::app()->param->assetsLocation.'/js/example.js');

样板的基本布局将在 layout/main.php 中定义。查看主题文档:http://www.yiiframework.com/doc/guide/1.1/en/topics.theming

布局文件可能如下所示:

<!doctype html>
<?php $this->renderPartial('//layouts/_Htmlhead); ?>

<body>

  <div id="container">
    <?php $this->renderPartial('//layouts/_header); ?>
    <div id="main" role="main">
        <?php echo $content; ?>
    </div>
    <?php $this->renderPartial('//layouts/_footer); ?>
  </div> 
  <?php $this->renderPartial('//layouts/_footerScripts); ?>
</body>
</html>

【讨论】:

  • 注意页脚脚本是可选的。 Yii::app()->clientScript 有一个用于放置脚本的参数(即 postHead、postContent、postBody)
  • 感谢您的精彩反馈!
  • 我有几个后续问题:1) HTML5 Boilerplate 建议将所有 CSS 文件合并到它们的基本 style.css 中。当 BP 与 YII 一起使用时,你会建议坚持这种做法吗? jQuery 插件和其他外部 js 文件也是如此。 2)您能否详细说明此评论:“在布局下将HTML Header,页眉标签和页脚标签添加到自己的视图中。布局文件夹应包含main,_htmlHead,_header,_footer。在_htmlHead中注册所需的元素使用 Yii::app()->clientScript."?再次感谢!
  • @AgileAce 我已经更新了布局部分。希望有帮助。您使用的脚本和 css 文件越多,您的网站必须发出的 http 请求就越多。将 http 请求保持在最低限度是非常重要的。人们开发了压缩和精灵来减少请求的数量。 Yii 客户端脚本的美妙之处在于能够根据需要加载脚本和 css 文件。您不必在主布局中加载所有 CSS 文件。如果一个页面需要特殊的 javascript,您可以即时加载所需的信息。如果您确实需要降低 http 请求,请查看 Yii 的扩展。
【解决方案2】:

检查我的 Yii BoilerPlate 和 Bootstrap 集成

https://github.com/drumaddict/YiiApp

【讨论】:

【解决方案3】:

一个简单的 Yii HTML5 Boilerplate 主题可在https://github.com/neam/yii-html5-boilerplate获得

【讨论】:

    【解决方案4】:

    Antonio Ramirez 有一篇非常详细的 Wiki 文章,标题为:

    YiiBoilerplate - 在几秒钟内建立专业的项目结构 http://www.yiiframework.com/wiki/374/yiiboilerplate-setup-a-professional-project-structure-in-seconds/

    此设置的来源: https://github.com/clevertech/YiiBoilerplate

    【讨论】:

      【解决方案5】:


      https://github.com/clevertech/YiiBoilerplate
      我认为他们使用 HTML5Bilerplate

      【讨论】:

        猜你喜欢
        • 2018-05-27
        • 1970-01-01
        • 1970-01-01
        • 2012-06-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多