Phalcon 资源管理


资源是指除Phalcon现有框架之外的所有额外组件,Phalcon有一个资源管理器,可以帮助管理所有的资源组件,如CSS或JS文件。

常用的方法有:

Method作用
__construct($options)初始化组件 Phalcon\Assets\Manager
addCss(string $path, $local, $filter, $attributes)将“css”集合中的 CSS 资源添加到特定视图
addJs(string $path, $local, $filter, $attributes)将 JavaScript 资源添加到 'js' 集合

例子


考虑Phalcon的示例项目 "vokuro",它是添加css文件的最好说明,它将引入assets/Manager来调用所有的css文件。

这个项目的默认控制器将调用所有的css文件。

<?php 

namespace Vokuro\Controllers; 
use Phalcon\Assets\Manager;  

/** 
    * Display the default index page.
*/ 

class IndexController extends ControllerBase {  
    /**
        * Default action. Set the public layout (layouts/public.volt)
    */
    public function indexAction() {
        $this->assets->addCss("public/style.css");
        $this->view->setVar('logged_in', is_array($this->auth->getIdentity()));
        $this->view->setTemplateBefore('public');
    }
}

Style.css


div.remember { 
    margin-top: 7px;
    color: #969696;
}  
div.remember label { 
    padding-top: 15px;
}  
div.forgot { 
    margin-top: 7px;
    color: #dadada;
}  
footer { 
    background: url("../img/feature-gradient.png") no-repeat scroll center 100% white;
    color: #B7B7B7;
    font-size: 12px;
    padding: 30px 0;
    text-align: center;
}  
footer a { 
    margin-left: 10px;
    margin-right: 10px;
}  
table.signup td { 
    padding: 10px;
}  
table.signup .alert { 
    margin-bottom: 0;
    margin-top: 3px;
}  
table.perms select { 
    margin-top: 5px;
    margin-right: 10px;
}  
table.perms label { 
    margin-right: 10px;
}  
div.main-container { 
    min-height: 450px;
}

资源将在视图中进行管理,视图将显示 css 文件作为输出。

指数伏特


{{ content() }} 
{{ assets.outputCss() }} 

<header class = "jumbotron subhead" id = "overview"> 
    <div class = "hero-unit">
        <h1>Welcome!</h1>
        <p class = "lead">This is a website secured by Phalcon Framework</p>
        <div align = "right">
            {{ link_to('session/signup', '<i class="icon-ok icon-white">
                </i> Create an Account', 'class': 'btn btn-primary btn-large') }}
        </div>
    </div>
</header>

输出


它将产生以下输出:

Produced Output