steevedroz/ci-asset

此包已被废弃且不再维护。未建议替代包。

更容易地将您的资产包含到CodeIgniter中

v1.0.0 2019-06-13 14:19 UTC

This package is not auto-updated.

Last update: 2020-09-03 12:49:59 UTC


README

此包将为您的CodeIgniter项目添加一个库,以便更容易地将资产包含到代码中。

安装

使用composer(推荐)

  1. 在您的CodeIgniter项目中,输入composer require steevedroz/ci-asset:^1.0
  2. 从同一位置,输入php vendor/steevedroz/ci-asset/install.php。这将把所需的文件复制到您的CodeIgniter项目(到application/libraries/Asset.phpapplication/config/asset.php)。:警告:运行之前,请确保您没有名为Asset.php的库,否则您的工作将丢失!

手动

将此项目的application文件夹合并到您的CodeIgniter application文件夹中。

通用用法

为了使用此库,您首先必须使用以下方法加载它

$this->load->library('asset');

完成之后,您可以在两个步骤中使用此库

  1. 在控制器中,将指定的资产添加到项目中。
  2. 在视图的<head>部分,使用相应类型显示包含资产的所需所有行。

CSS

要将CSS文件包含在特定文档中,请执行以下操作

  1. 将您的文件放在/assets/css/。例如:/assets/css/example.css
  2. 在加载视图之前使用此行:$this->asset->css('example');。(此步骤可以重复多次)
  3. 在视图的<head>部分添加此行:<?= $this->asset->css() ?>

如果您始终具有相同的HTML标题,则此技术效果最佳。

JavaScript

要将JavaScript文件包含在特定文档中,请执行以下操作

  1. 将您的文件放在/assets/js/。例如:/assets/js/example.js
  2. 在加载视图之前使用此行:$this->asset->js('example');。(此步骤可以重复多次)
  3. 在视图的<head>部分添加此行:<?= $this->asset->js() ?>

示例

注意:application/config/autoload.php加载了库asset

<?php
// application/controllers/Blog.php

class Blog extends CI_Controller
{
    public function index()
    {
        $this->asset->css('blog');
        $this->asset->css('comment');

        $this->asset->js('blog');

        $this->load->view('templates/header');
        $this->load->view('pages/blog/index');
        $this->load->view('templates/footer');
    }
}
<!-- application/views/templates/header.php -->

<!DOCTYPE html>
<html lang="en" dir="ltr">
    <head>
        <meta charset="utf-8">
        <title>Blog</title>
        <?= $this->asset->css() ?>
        <?= $this->asset->js() ?>
    </head>

结果

<!DOCTYPE html>
<html lang="en" dir="ltr">
    <head>
        <meta charset="utf-8">
        <title>Blog</title>
        <link rel="stylesheet" href="assets/css/blog.css" type="text/css">
        <link rel="stylesheet" href="assets/css/comment.css" type="text/css">
        <script src="assets/js/blog.js" defer></script>
    </head>

API

以下是Asset库所有可能的用法。

$asset->css($css = null)

$css是一个字符串时,它将CSS添加到显示列表中。

$css未指定时,它返回将包括之前添加的CSS表的所需所有行。

$asset->js($js = null, $library = false)

$js是一个字符串时,它将JavaScript添加到显示列表中。

$js未指定时,它返回将包括之前添加的JavaScript的所有行。

参数$library指定脚本是否是必须先加载到DOM准备好之前的库(例如:jQuery)。如果未指定或设置为false,则将在<script>标签中添加defer关键字。

$asset->css_url

这指定了CSS文件的自定义路径。默认值是assets/css/

$asset->js_url

这指定了JavaScript文件的自定义路径。默认值是assets/js/

默认资产

如果您有必须在所有页面上默认加载的资产,请按照以下方式填写application/config/asset.php

asset-js键对应一个键值数组,包含与是否为库相关的脚本名称。

asset-css键对应样式表的数组。

示例

<?php

$config['asset-js'] = [
    'script-name' => false,
    'library-name' => true
];

$config['asset-css'] = [
    'style-1',
    'style-2',
    'style-3'
];