文档章节

教你如何写一个 Yii2 扩展

 小田天
发布于 2016/11/17 11:33
字数 410
阅读 245
收藏 0

前言

把一系列相关联的功能使用模块开发,好处多多,维护起来很方便,模块还可以单独发布出去,让下一个项目之间使用,真是方便。

下面我就写一个开发扩展的简单教程。

Gii

gii 自带帮助我们生成一个基本的扩展文件结构,地址如下: www.xxx.com/gii/extension

先预览一下,成功之后可以点击生成按钮。

然后页面会提示你如何操作。他让我们上传到 GitHub 上去,再开发、使用。但是一般我们一个扩展刚生成,还没写功能,上传到 GitHub 再开发,太麻烦了。

下面我来谈谈我是怎么使用的。

使用

先在配置文件添加一个别名,代码如下:

<?php
return [

    'components' => [
    ],
    'aliases' => [
        'yiier/rbac' => '@backend/runtime/tmp-extensions/yii2-rbac/src',
    ],

];

只要添加这行就可以使用扩展的命名空间了,就可以愉快的开发了。

同样的道理,如果我们再 GitHub 上看到一个扩展不能用 composer 下载下来怎么办?其实我们可以自己定义一个 vendor 目录,然后给扩展配置一个路径别名就是可以用的。

注意

按照习惯,我们的扩展一般写在 src 目录下,所以你要手动新建一个 src 文件夹,然后再用 Gii 去生成模块到 src 文件夹里,并且还要改扩展根目录下的 composer.json 文件。

"autoload": {
        "psr-4": {
            // "yiier\\rbac\\": ""  //  原来的
            "yiier\\rbac\\": "src"
        }
    }

下面分享一些优秀的开源模块 https://github.com/forecho/awesome-yii2#module-模块

本文转载自:https://getyii.com/topic/401

共有 人打赏支持
粉丝 0
博文 79
码字总数 49841
作品 0
怀化
私信 提问
Yii2 Unable to verify your data submission 错误-CSRF

Yii2 功能很是强大,组件化编程很高大上,全栈编程很容易,但我觉得日常的开发中还是有很大一部分人会去手写表单之类的,为了配合前端的工作,或者懒得再去学这套堪比一门新语言的组件语法....

big_cat
2016/02/01
345
2
yii2 - Property 之 默认构造方法 和 setter/getter 方法

yii2 内部规定了 construct 函数的构造形式,以键值对儿数组作为参数,进行属性的初始化,但要注意给属性赋值的工作是转交给基类 yiibaseYii::configure 方法的,故无法直接访问本类的私有属...

big_cat
2016/05/27
530
0
这些最热门的 PHP 框架,哪一款是你的菜?

原文出处:opensource 译文出处:开源中国—两味真火 PHP 是世界上最流行的编程语言之一,广泛用于主要的项目中。例如,Facebook 就是利用 PHP 来创建和维护他们的内部系统;WordPress 内部基...

opensource
2016/12/27
0
0
yii2开发中19条推荐实践(阿北总结)

虽然每个人的编程风格不同,但是有些建议能让你的代码更加规范和稳定,本次就我这次网站更新总结如下几点,希望对你的yii2学习和使用有所帮助。 环境说明 服务器环境: CentOS 开发环境及IDE...

阿北2017
06/02
0
0
通过扩展 CWebUser 增加信息到 Yii::app()->user

此教程解释了:如何通过增加一个扩展自 CWebUser 并从名为 User 的数据表中检索用户信息的组件,从 Yii::app()->user 检索更多参数。 也有另外一个方法来完成这个任务,它从 session 或 cook...

drewin
2014/09/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

java框架学习日志

上篇文章(java框架学习日志-1)虽然跟着写了例子,也理解为什么这么写,但是有个疑问,为什么叫控制反转?控制的是什么?反转又是什么? 控制其实就是控制对象的创建。 反转与正转对应,正转...

白话
7分钟前
0
0
Integer使用双等号比较会发生什么

话不多说,根据以下程序运行,打印的结果为什么不同? Integer a = 100;Integer b = 100;System.out.println(a == b);//print : trueInteger a = 200;Integer b = 200;System.out.pr...

兜兜毛毛
昨天
5
0
CockroachDB

百度云上的CockroachDB 云数据库 帮助文档 > 产品文档 > CockroachDB 云数据库 > 产品描述 开源NewSQL – CockroachDB在百度内部的应用与实践 嘉宾演讲视频及PPT回顾:http://suo.im/5bnORh ...

miaojiangmin
昨天
4
0
I2C EEPROM驱动实例分析

上篇分析了Linux Kernel中的I2C驱动框架,本篇举一个具体的I2C设备驱动(eeprom)来对I2C设备驱动有个实际的认识。 s3c24xx系列集成了一个基于I2C的eeprom设备at24cxx系列。at24cxx系列芯片包...

yepanl
昨天
5
0
设计模式之工厂模式

本篇博文主要翻译这篇文章: https://www.journaldev.com/1392/factory-design-pattern-in-java 由于翻译水平有限,自认为许多地方翻译不恰当,欢迎各位给出宝贵的建议,建议大家去阅读原文。...

firepation
昨天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部