Yii2 - Centos 6.* / 7.*下通过yum安装php7
Yii2.0 • 鸿宇 发表了文章 • 0 个评论 • 1861 次浏览 • 2017-05-07 23:34
官方论坛:bbs.hongyuvip.com
官方QQ群:90664526
查看 centos 版本# cat /etc/centos-release
删除之前的 php 版本# yum remove php* php-common
rpm 安装 Php7 相应的 yum源
CentOS/RHEL 7.x:# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
CentOS/RHEL 6.x:# rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm
yum安装php7# yum install php70w php70w-opcache
php7可选安装# yum install php70-php php70-php-pear php70-php-bcmath php70-php-pecl-jsond-devel php70-php-mysqlnd php70-php-gd php70-php-common php70-php-fpm php70-php-intl php70-php-cli php70-php php70-php-xml php70-php-opcache php70-php-pecl-apcu php70-php-pecl-jsond php70-php-pdo php70-php-gmp php70-php-process php70-php-pecl-imagick php70-php-devel php70-php-mbstring php70-php-mcrypt
安装其他插件列表(选装)php70w
php70w-bcmath
php70w-cli
php70w-common
php70w-dba
php70w-devel
php70w-embedded
php70w-enchant
php70w-fpm
php70w-gd
php70w-imap
php70w-interbase
php70w-intl
php70w-ldap
php70w-mbstring
php70w-mcrypt
php70w-mysql
php70w-mysqlnd
php70w-odbc
php70w-opcache
php70w-pdo
php70w-pdo_dblib
php70w-pear
php70w-pecl-apcu
php70w-pecl-imagick
php70w-pecl-xdebug
php70w-pgsql
php70w-phpdbg
php70w-process
php70w-pspell
php70w-recode
php70w-snmp
php70w-soap
php70w-tidy
php70w-xml
php70w-xmlrpc
重启 Apache# service httpd restart
查看全部
官方论坛:bbs.hongyuvip.com
官方QQ群:90664526
查看 centos 版本
# cat /etc/centos-release
删除之前的 php 版本
# yum remove php* php-common
rpm 安装 Php7 相应的 yum源
CentOS/RHEL 7.x:
# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
CentOS/RHEL 6.x:
# rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm
yum安装php7
# yum install php70w php70w-opcache
php7可选安装
# yum install php70-php php70-php-pear php70-php-bcmath php70-php-pecl-jsond-devel php70-php-mysqlnd php70-php-gd php70-php-common php70-php-fpm php70-php-intl php70-php-cli php70-php php70-php-xml php70-php-opcache php70-php-pecl-apcu php70-php-pecl-jsond php70-php-pdo php70-php-gmp php70-php-process php70-php-pecl-imagick php70-php-devel php70-php-mbstring php70-php-mcrypt
安装其他插件列表(选装)
php70w
php70w-bcmath
php70w-cli
php70w-common
php70w-dba
php70w-devel
php70w-embedded
php70w-enchant
php70w-fpm
php70w-gd
php70w-imap
php70w-interbase
php70w-intl
php70w-ldap
php70w-mbstring
php70w-mcrypt
php70w-mysql
php70w-mysqlnd
php70w-odbc
php70w-opcache
php70w-pdo
php70w-pdo_dblib
php70w-pear
php70w-pecl-apcu
php70w-pecl-imagick
php70w-pecl-xdebug
php70w-pgsql
php70w-phpdbg
php70w-process
php70w-pspell
php70w-recode
php70w-snmp
php70w-soap
php70w-tidy
php70w-xml
php70w-xmlrpc
重启 Apache
# service httpd restart
Yii2 - Linux安装使用Composer
Yii2.0 • 鸿宇 发表了文章 • 0 个评论 • 2078 次浏览 • 2016-12-20 16:52
Composer 将这样为你解决问题:
a) 你有一个项目依赖于若干个库。
b) 其中一些库依赖于其他库。
c) 你声明你所依赖的东西。
d) Composer 会找出哪个版本的包需要安装,并安装它们(将它们下载到你的项目中)。
Composer 是多平台的,我们努力使它在 Windows 、 Linux 以及 OSX 平台上运行的同样出色。
安装Composer
1、将composer.phar下载到项目中
使用下面命令下载Composer 的二进制文件,是一个 PHAR 包(PHP 的归档)curl -sS https://getcomposer.org/installer | php
* 可以通过 --install-dir 选项指定 Composer 的安装目录(它可以是一个绝对或相对路径):curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin/composer
2、如果把composer.phar放在系统的 PATH 目录中,就能在全局访问composer.phar。 在类Unix系统中,你甚至可以在使用时不加 php 前缀。可以执行这些命令让 composer 在你的系统中进行全局调用:mv composer.phar /usr/local/bin/composer
现在只需要运行 composer 命令就可以使用 Composer 而不需要输入 php composer.phar。
3、检查 Composer 是否正常工作,只需要通过 php 来执行 PHAR:php composer.phar这将返回给你一个可执行的命令列表。
4、查看当前 Composer镜像地址
composer config –gl
[repositories.packagist.org.url] https://packagist.phpcomposer.com
使用 Composer
要在项目中使用 Composer,只需要一个 composer.json 文件。该文件包含了项目的依赖和其它的一些元数据。现在使用 Composer 来安装项目的依赖。
1、创建 composer.json 文件
在当前目录下创建 composer.json 文件,在 composer.json 文件中指定 require key 的值。简单的告诉 Composer 你的项目需要依赖哪些包。
例如:{
"require":
{
"monolog/monolog": "1.0.*"
}
}
可以看到, require 需要一个 包名称 monolog/monolog映射到 包版本 1.0.*的对象。包名称由供应商名称和其项目名称构成。
2、安装依赖包
执行 install 命令获取定义的依赖到本地项目:php composer.phar install
如果你进行了全局安装,并且没有 phar 文件在当前目录,使用下面的命令代替:composer install
这将会找到 monolog/monolog 的最新版本,并将它下载到 vendor 目录。 这是一个惯例把第三方的代码到一个指定的目录 vendor。如果是 monolog 将会创建 vendor/monolog/monolog 目录。
注意: install 命令将创建一个 composer.lock 文件到你项目的根目录中。
3、自动加载
除了库的下载,Composer 还准备了一个自动加载文件,它可以加载 Composer 下载的库中所有的类文件。使用它,你只需要将下面这行代码添加到你项目的引导文件中:require 'vendor/autoload.php';
现在我们就可以使用 monolog 了 查看全部
Composer 将这样为你解决问题:
a) 你有一个项目依赖于若干个库。
b) 其中一些库依赖于其他库。
c) 你声明你所依赖的东西。
d) Composer 会找出哪个版本的包需要安装,并安装它们(将它们下载到你的项目中)。
Composer 是多平台的,我们努力使它在 Windows 、 Linux 以及 OSX 平台上运行的同样出色。
安装Composer
1、将composer.phar下载到项目中
使用下面命令下载Composer 的二进制文件,是一个 PHAR 包(PHP 的归档)
curl -sS https://getcomposer.org/installer | php
* 可以通过 --install-dir 选项指定 Composer 的安装目录(它可以是一个绝对或相对路径):
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin/composer
2、如果把composer.phar放在系统的 PATH 目录中,就能在全局访问composer.phar。 在类Unix系统中,你甚至可以在使用时不加 php 前缀。可以执行这些命令让 composer 在你的系统中进行全局调用:
mv composer.phar /usr/local/bin/composer
现在只需要运行 composer 命令就可以使用 Composer 而不需要输入 php composer.phar。
3、检查 Composer 是否正常工作,只需要通过 php 来执行 PHAR:php composer.phar这将返回给你一个可执行的命令列表。
4、查看当前 Composer镜像地址
composer config –gl
[repositories.packagist.org.url] https://packagist.phpcomposer.com
使用 Composer
要在项目中使用 Composer,只需要一个 composer.json 文件。该文件包含了项目的依赖和其它的一些元数据。现在使用 Composer 来安装项目的依赖。
1、创建 composer.json 文件
在当前目录下创建 composer.json 文件,在 composer.json 文件中指定 require key 的值。简单的告诉 Composer 你的项目需要依赖哪些包。
例如:
{
"require":
{
"monolog/monolog": "1.0.*"
}
}
可以看到, require 需要一个 包名称 monolog/monolog映射到 包版本 1.0.*的对象。包名称由供应商名称和其项目名称构成。
2、安装依赖包
执行 install 命令获取定义的依赖到本地项目:
php composer.phar install
如果你进行了全局安装,并且没有 phar 文件在当前目录,使用下面的命令代替:
composer install
这将会找到 monolog/monolog 的最新版本,并将它下载到 vendor 目录。 这是一个惯例把第三方的代码到一个指定的目录 vendor。如果是 monolog 将会创建 vendor/monolog/monolog 目录。
注意: install 命令将创建一个 composer.lock 文件到你项目的根目录中。
3、自动加载
除了库的下载,Composer 还准备了一个自动加载文件,它可以加载 Composer 下载的库中所有的类文件。使用它,你只需要将下面这行代码添加到你项目的引导文件中:
require 'vendor/autoload.php';
现在我们就可以使用 monolog 了
Yii2 - PHP获取服务器详细信息函数
Yii2.0 • 鸿宇 发表了文章 • 0 个评论 • 3901 次浏览 • 2016-12-10 20:23
获取系统类型及版本号: php_uname() (例:Windows NT COMPUTER 5.1 build 2600)
只获取系统类型: php_uname('s') (或:PHP_OS,例:Windows NT)
只获取系统版本号: php_uname('r')
获取PHP运行方式: php_sapi_name() (PHP run mode:apache2handler)
获取前进程用户名: Get_Current_User()
获取PHP版本: PHP_VERSION
获取Zend版本: Zend_Version()
获取PHP安装路径: DEFAULT_INCLUDE_PATH
获取当前文件绝对路径: __FILE__
获取Http请求中Host值: $_SERVER["HTTP_HOST"] (返回值为域名或IP)
获取服务器IP: GetHostByName($_SERVER['SERVER_NAME'])
接受请求的服务器IP: $_SERVER["SERVER_ADDR"] (有时候获取不到,推荐用:GetHostByName($_SERVER['SERVER_NAME']))
获取客户端IP: $_SERVER['REMOTE_ADDR']
获取服务器解译引擎: $_SERVER['SERVER_SOFTWARE']
获取服务器CPU数量: $_SERVER['PROCESSOR_IDENTIFIER']
获取服务器系统目录: $_SERVER['SystemRoot']
获取服务器域名:$_SERVER['SERVER_NAME'] (建议使用:$_SERVER["HTTP_HOST"])
获取用户域名: $_SERVER['USERDOMAIN']
获取服务器语言: $_SERVER['HTTP_ACCEPT_LANGUAGE']获取服务器Web端口: $_SERVER['SERVER_PORT']
最大上传限制: ini_get('upload_max_filesize')
附录:(Yii2.0获取系统信息)
系统名称:Yii::$app->name
系统版本:Yii::$app->version
MySQL版本:Yii::$app->db->pdo->getAttribute(\PDO::ATTR_SERVER_VERSION)
查看全部
获取系统类型及版本号: php_uname() (例:Windows NT COMPUTER 5.1 build 2600)
只获取系统类型: php_uname('s') (或:PHP_OS,例:Windows NT)
只获取系统版本号: php_uname('r')
获取PHP运行方式: php_sapi_name() (PHP run mode:apache2handler)
获取前进程用户名: Get_Current_User()
获取PHP版本: PHP_VERSION
获取Zend版本: Zend_Version()
获取PHP安装路径: DEFAULT_INCLUDE_PATH
获取当前文件绝对路径: __FILE__
获取Http请求中Host值: $_SERVER["HTTP_HOST"] (返回值为域名或IP)
获取服务器IP: GetHostByName($_SERVER['SERVER_NAME'])
接受请求的服务器IP: $_SERVER["SERVER_ADDR"] (有时候获取不到,推荐用:GetHostByName($_SERVER['SERVER_NAME']))
获取客户端IP: $_SERVER['REMOTE_ADDR']
获取服务器解译引擎: $_SERVER['SERVER_SOFTWARE']
获取服务器CPU数量: $_SERVER['PROCESSOR_IDENTIFIER']
获取服务器系统目录: $_SERVER['SystemRoot']
获取服务器域名:$_SERVER['SERVER_NAME'] (建议使用:$_SERVER["HTTP_HOST"])
获取用户域名: $_SERVER['USERDOMAIN']
获取服务器语言: $_SERVER['HTTP_ACCEPT_LANGUAGE']获取服务器Web端口: $_SERVER['SERVER_PORT']
最大上传限制: ini_get('upload_max_filesize')
附录:(Yii2.0获取系统信息)
系统名称:Yii::$app->name
系统版本:Yii::$app->version
MySQL版本:Yii::$app->db->pdo->getAttribute(\PDO::ATTR_SERVER_VERSION)
Notepad++ 右键点击->Edid With Notepad ++ 然后出现 "ShellExecute failed (2): Is this command correct?"
鸿宇 发表了文章 • 0 个评论 • 2748 次浏览 • 2016-10-18 16:36
解决办法:(试试取消以管理员身份运行此程序,有惊喜!)
[]打开注册表(win+R, 输入"regedit"),[/]
[]到 HKEY_CLASSES_ROOT 下[/]
[]用关键字"notepad++.exe"搜索( Ctrl+F, 多搜索几次 ), 找到有 Title = "Edit with Notepad++" or "Edit with &Notepadd++的记录[/]
[]把整条记录删掉,例如上面图片的 {B298D29A-A6Ed.......} 的这个目录下的全部内容删掉.[/]
当然可以先备份, <文件> -> <导出>
[]到 HKEY_CLASSES_ROOT\\shell记录[/*]
[]添加 Notepad++ 注册表[/]
① 在 Shell 下面新建 "OpenWithNotepad"项目,设置 (默认) 的值为 "Edit with Notepad".
右边新建 字符串值, 名为"Icon",值为 notepad++.exe的运行路径, 例如: "C:\Program Files (x86)\Notepad++\notepad++.exe"
② "OpenWithNotepad" 下面新建"Command"项目, (默认) 的值为 notepad++.exe的运行路径, 例如: "C:\Program Files (x86)\Notepad++\notepad++.exe"
[b][b] 附录 [/b][/b]****
如果你的 Notepad++ 安装时候是默认路径,那么可以按照如下解决方案操作:
[]打开注册表(win+R, 输入"regedit")[/][]文件 -> 导入 -> 选择 Notepad++.reg(附件中提供)[/][]再次尝试 右键点击->Edid With Notepadd++ 是不是没问题了,亲测有效[/]
参考文章地址:http://timourrashed.com/how-to-fix-shellexecute/
* 建议大家卸载重新安装 Notepad++64位版本(附件中提供) 查看全部
解决办法:(试试取消以管理员身份运行此程序,有惊喜!)
- []打开注册表(win+R, 输入"regedit"),[/]
- []到 HKEY_CLASSES_ROOT 下[/]
- []用关键字"notepad++.exe"搜索( Ctrl+F, 多搜索几次 ), 找到有 Title = "Edit with Notepad++" or "Edit with &Notepadd++的记录[/]
- []把整条记录删掉,例如上面图片的 {B298D29A-A6Ed.......} 的这个目录下的全部内容删掉.[/]
当然可以先备份, <文件> -> <导出>
- []到 HKEY_CLASSES_ROOT\\shell记录[/*]
- []添加 Notepad++ 注册表[/]
① 在 Shell 下面新建 "OpenWithNotepad"项目,设置 (默认) 的值为 "Edit with Notepad".
右边新建 字符串值, 名为"Icon",值为 notepad++.exe的运行路径, 例如: "C:\Program Files (x86)\Notepad++\notepad++.exe"
② "OpenWithNotepad" 下面新建"Command"项目, (默认) 的值为 notepad++.exe的运行路径, 例如: "C:\Program Files (x86)\Notepad++\notepad++.exe"
[b][b] 附录 [/b][/b]****
如果你的 Notepad++ 安装时候是默认路径,那么可以按照如下解决方案操作:
- []打开注册表(win+R, 输入"regedit")[/][]文件 -> 导入 -> 选择 Notepad++.reg(附件中提供)[/][]再次尝试 右键点击->Edid With Notepadd++ 是不是没问题了,亲测有效[/]
参考文章地址:http://timourrashed.com/how-to-fix-shellexecute/
* 建议大家卸载重新安装 Notepad++64位版本(附件中提供)
Yii2 - (七)规则的讲解
Yii2.0 • 鸿宇 发表了文章 • 0 个评论 • 1892 次浏览 • 2016-10-15 23:01
一、用 gii 生成 user 模型和 CRUD 操作
二、创建“管理用户”和”规则“菜单
1、点击“路由”,然后点击
,即可以看到多了刚刚生成的 userController 的路由
将 /user/* 和 /user/index 移动至右边
将 /admin/rule/* 和 /admin/rule/index 也移动至右边,待会创建 “规则” 菜单
2、点击“菜单”创建以下菜单
三、添加“规则”(路由)给“权限控制”(权限)
1、点击“权限”然后进行创建“管理用户”的权限
2、点击“权限”,然后再点击”权限控制“的查看按钮,将 /admin/rule/* 移至右边
3、点击“角色”,为“站长”和“普通管理员”添加“管理用户”的权限
四、为“普通管理员”添加“修改用户”的规则
1、新建“修改用户”的规则
① 新建 backend\components\UserRule 这个类文件
② 刷新页面,左侧菜单出现“规则”的菜单,点击“规则”创建“修改用户”的规则
2、为“普通管理员”添加“修改用户”的规则
点击“角色”,再点击“普通管理员”的更新按钮
打开 auth_item 表,可以发现“普通管理员”这个记录被修改了
五、测试“修改用户”的规则是否发挥作用
1、登录 master 站长,点击“管理用户”,再点击 admin 修改的按钮,发现可以修改
2、登录 admin 普通管理员,点击“管理用户”,再点击 master 修改的按钮,发现无法可以修改
表明“修改用户”的规则对“普通管理员”这个角色发挥作用了。
注意:测试时务必把 \backend\main.php 的 * 注释掉
查看全部
一、用 gii 生成 user 模型和 CRUD 操作
二、创建“管理用户”和”规则“菜单
1、点击“路由”,然后点击 ,即可以看到多了刚刚生成的 userController 的路由
将 /user/* 和 /user/index 移动至右边
将 /admin/rule/* 和 /admin/rule/index 也移动至右边,待会创建 “规则” 菜单
2、点击“菜单”创建以下菜单
三、添加“规则”(路由)给“权限控制”(权限)
1、点击“权限”然后进行创建“管理用户”的权限
2、点击“权限”,然后再点击”权限控制“的查看按钮,将 /admin/rule/* 移至右边
3、点击“角色”,为“站长”和“普通管理员”添加“管理用户”的权限
四、为“普通管理员”添加“修改用户”的规则
1、新建“修改用户”的规则
① 新建 backend\components\UserRule 这个类文件
② 刷新页面,左侧菜单出现“规则”的菜单,点击“规则”创建“修改用户”的规则
2、为“普通管理员”添加“修改用户”的规则
点击“角色”,再点击“普通管理员”的更新按钮
打开 auth_item 表,可以发现“普通管理员”这个记录被修改了
五、测试“修改用户”的规则是否发挥作用
1、登录 master 站长,点击“管理用户”,再点击 admin 修改的按钮,发现可以修改
2、登录 admin 普通管理员,点击“管理用户”,再点击 master 修改的按钮,发现无法可以修改
表明“修改用户”的规则对“普通管理员”这个角色发挥作用了。
注意:测试时务必把 \backend\main.php 的 * 注释掉
Yii2 - (六)rbac效果预览
Yii2.0 • 鸿宇 发表了文章 • 0 个评论 • 1820 次浏览 • 2016-10-15 22:54
一、创建“调试”的权限:可以进行 gii 和 degug 的操作
1、点击“路由”,将 /gii/ 、/gii/default/index、/debug/ 、/degug/default/index 写入到 auth_item 表
2、点击“权限”,创建名为“调试”的权限,并分配 /gii/ 和 /debug/ 路由
3、点击“角色”,创建名为“普通管理员”的角色,并分配“调式”的权限
二、创建“调式”的菜单
1、创建
gii 菜单:Parent —— 调式;Name —— gii;Route —— /gii/default/index;Order —— 1
debug 菜单:Parent —— 调式;Name —— debug;Route —— /debug/default/index;Order —— 2
2、分配“调式“权限给”站长“角色
3、刷新页面,你会发现左侧导航栏多了调式的菜单
三、创建“普通管理员“角色的新用户
1、进入前台 127.0.0.1/advanced/frontend/web 进行注册新用户
2、进入后台 127.0.0.1/advanced/backend/web/admin/assignment/index
点击 admin 的查看按钮,为 admin 分配普通管理员的角色
3、刷新页面,你会发现 admin 用户也多了 调试的菜单
四、rbac 的作用
1、在步骤三、2中 admin 用户通过 输入地址:127.0.0.1/advanced/backend/web/admin/assignment 进入分配角色的页面,现在我们通过配置限制用户访问,配置文件为 backend/main.php
2、现在 admin 用户通过 127.0.0.1/advanced/backend/web/admin/assignment 会出现下面的界面,说明 rbac 成功了
3、退出 admin 用户,登录 master 用户,发现 master 可以执行 admin/assignment 操作 查看全部
一、创建“调试”的权限:可以进行 gii 和 degug 的操作
1、点击“路由”,将 /gii/ 、/gii/default/index、/debug/ 、/degug/default/index 写入到 auth_item 表
2、点击“权限”,创建名为“调试”的权限,并分配 /gii/ 和 /debug/ 路由
3、点击“角色”,创建名为“普通管理员”的角色,并分配“调式”的权限
二、创建“调式”的菜单
1、创建
gii 菜单:Parent —— 调式;Name —— gii;Route —— /gii/default/index;Order —— 1
debug 菜单:Parent —— 调式;Name —— debug;Route —— /debug/default/index;Order —— 2
2、分配“调式“权限给”站长“角色
3、刷新页面,你会发现左侧导航栏多了调式的菜单
三、创建“普通管理员“角色的新用户
1、进入前台 127.0.0.1/advanced/frontend/web 进行注册新用户
2、进入后台 127.0.0.1/advanced/backend/web/admin/assignment/index
点击 admin 的查看按钮,为 admin 分配普通管理员的角色
3、刷新页面,你会发现 admin 用户也多了 调试的菜单
四、rbac 的作用
1、在步骤三、2中 admin 用户通过 输入地址:127.0.0.1/advanced/backend/web/admin/assignment 进入分配角色的页面,现在我们通过配置限制用户访问,配置文件为 backend/main.php
2、现在 admin 用户通过 127.0.0.1/advanced/backend/web/admin/assignment 会出现下面的界面,说明 rbac 成功了
3、退出 admin 用户,登录 master 用户,发现 master 可以执行 admin/assignment 操作
Yii2 - (五)创建左侧导航栏菜单
Yii2.0 • 鸿宇 发表了文章 • 0 个评论 • 2834 次浏览 • 2016-10-15 22:49
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(128) NOT NULL,
`parent` int(11) DEFAULT NULL,
`route` varchar(256) DEFAULT NULL,
`order` int(11) DEFAULT NULL,
`data` text,
PRIMARY KEY (`id`),
KEY `parent` (`parent`),
CONSTRAINT `menu_ibfk_1` FOREIGN KEY (`parent`) REFERENCES `menu` (`id`) ON DELETE SET NULL ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8
数据库表位置:vendor\mdmsoft\yii2-admin\migrations\m140602_111327_create_menu_table.php
或按照下面你操作步骤执行:
① 打开 common/config/main.php ,在 'components' => , 数组中添加下面代码:'authManager' => [
'class' => 'yii\rbac\DbManager',
],
② 执行命令:yii migrate --migrationPath=@mdm/admin/migrations
2、在 backend/views/layouts/left.php 中添加内容
① 在 left.php 中找到下面代码:<?= dmstr\widgets\Menu::widget(
//......
) ?>② 在后面添加下面代码:<?php
use mdm\admin\components\MenuHelper;
$callback = function($menu){
$data = json_decode($menu['data'], true);
$items = $menu['children'];
$return = ['label' => $menu['name'],'url' => [$menu['route']]];
//处理我们的配置
if ($data) {
isset($data['visible']) && $return['visible'] = $data['visible'];//visible
isset($data['icon']) && $data['icon'] && $return['icon'] = $data['icon'];//icon
//other attribute e.g. class...
$return['options'] = $data;
}
//没配置图标的显示默认图标
(!isset($return['icon']) || !$return['icon']) && $return['icon'] = 'fa fa-circle-o';
$items && $return['items'] = $items;
return $return;
};
//对菜单menu进行了优化
echo dmstr\widgets\Menu::widget( [
'options' => ['class' => 'sidebar-menu'],
'items' => MenuHelper::getAssignedMenu(Yii::$app->user->id,null, $callback),
] );
?>3、点击“菜单”,然后点击 创建按钮进行创建菜单
4、点击“路由”,将以下几个路由写到 auth_item 表(为了分配路由给菜单)
点击“权限”,再点击查看“权限控制”,分配 /admin/menu/*
5、点击“菜单”,创建以下子菜单
* 注意:填写 “Parent” 即父级菜单的名称时要手动选择才行,直接全打上 会保存不了的。比如:先输入“权限”,然后出现下拉菜单就可以选择“权限控制”了。
6、刷新页面,预览效果:你会发现,多了一个菜单,请删除 left.php 中多余的 <ul></ul> 查看全部
CREATE TABLE `menu` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(128) NOT NULL,
`parent` int(11) DEFAULT NULL,
`route` varchar(256) DEFAULT NULL,
`order` int(11) DEFAULT NULL,
`data` text,
PRIMARY KEY (`id`),
KEY `parent` (`parent`),
CONSTRAINT `menu_ibfk_1` FOREIGN KEY (`parent`) REFERENCES `menu` (`id`) ON DELETE SET NULL ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8
数据库表位置:vendor\mdmsoft\yii2-admin\migrations\m140602_111327_create_menu_table.php
或按照下面你操作步骤执行:
① 打开 common/config/main.php ,在 'components' => , 数组中添加下面代码:
'authManager' => [
'class' => 'yii\rbac\DbManager',
],
② 执行命令:
yii migrate --migrationPath=@mdm/admin/migrations
2、在 backend/views/layouts/left.php 中添加内容
① 在 left.php 中找到下面代码:
<?= dmstr\widgets\Menu::widget(② 在后面添加下面代码:
//......
) ?>
<?php3、点击“菜单”,然后点击 创建按钮进行创建菜单
use mdm\admin\components\MenuHelper;
$callback = function($menu){
$data = json_decode($menu['data'], true);
$items = $menu['children'];
$return = ['label' => $menu['name'],'url' => [$menu['route']]];
//处理我们的配置
if ($data) {
isset($data['visible']) && $return['visible'] = $data['visible'];//visible
isset($data['icon']) && $data['icon'] && $return['icon'] = $data['icon'];//icon
//other attribute e.g. class...
$return['options'] = $data;
}
//没配置图标的显示默认图标
(!isset($return['icon']) || !$return['icon']) && $return['icon'] = 'fa fa-circle-o';
$items && $return['items'] = $items;
return $return;
};
//对菜单menu进行了优化
echo dmstr\widgets\Menu::widget( [
'options' => ['class' => 'sidebar-menu'],
'items' => MenuHelper::getAssignedMenu(Yii::$app->user->id,null, $callback),
] );
?>
4、点击“路由”,将以下几个路由写到 auth_item 表(为了分配路由给菜单)
点击“权限”,再点击查看“权限控制”,分配 /admin/menu/*
5、点击“菜单”,创建以下子菜单
* 注意:填写 “Parent” 即父级菜单的名称时要手动选择才行,直接全打上 会保存不了的。比如:先输入“权限”,然后出现下拉菜单就可以选择“权限控制”了。
6、刷新页面,预览效果:你会发现,多了一个菜单,请删除 left.php 中多余的 <ul></ul>
Yii2 - (四)rbac 详细操作
Yii2.0 • 鸿宇 发表了文章 • 0 个评论 • 1893 次浏览 • 2016-10-15 22:46
//......
) ?>修改为<?= dmstr\widgets\Menu::widget(
[
'options' => ['class' => 'sidebar-menu'],
'items' => [
['label' => '系统设置', 'options' => ['class' => 'header']],
[
'label' => '权限控制',
'icon' => 'fa fa-lock',
'url' => '#',
'items' => [
['label' => '路由', 'icon' => 'fa fa-circle-o', 'url' => ['/admin/route'],],
['label' => '权限', 'icon' => 'fa fa-circle-o', 'url' => ['/admin/permission'],],
['label' => '角色', 'icon' => 'fa fa-circle-o', 'url' => ['/admin/role'],],
['label' => '分配', 'icon' => 'fa fa-circle-o', 'url' => ['/admin/assignment'],],
['label' => '菜单', 'icon' => 'fa fa-circle-o', 'url' => ['/admin/menu'],],
],
],
],
]
) ?>
进入 127.0.0.1/advanced/backend/web/ 预览效果
2、点击“路由”,将下图中的几个路由移动到右边
查看 auth_item 数据表,发现新增了几行我们刚刚添加的记录
3、点击“权限”,然后点击 创建按钮进行创建权限
再次查看 auth_item 表,你会发现多了一条记录
创建成功之后来到权限的视图界面进行分配权限,将刚刚创建的全部路由分配给该权限
查看 auth_item_child 表,发现新增了四条记录,可以简单理解:auth_item_child 为权限分配了路由
4、点击“角色”,创建一个叫“站长”的角色
查看 auth_item 表,你会发现多了一条记录
此时你会发现,在 auth_item 表中,tyep=1表示角色、type=2表示权限。
创建成功之后来到角色的视图界面进行分配路由,将刚刚创建的“权限控制”分配给该角色
查看 auth_item_child 表,你会发现多了一条记录
可以简单理解:auth_item_child 为角色分配了权限
5、点击“分配”,然后点击当前用户的查看按钮,将“站长”这个角色分配给当前用户
查看 auth_assignment 表,你会发现多了一条记录
可以简单理解:auth_assignment 为用户分配了角色 查看全部
<?= dmstr\widgets\Menu::widget(修改为
//......
) ?>
<?= dmstr\widgets\Menu::widget(
[
'options' => ['class' => 'sidebar-menu'],
'items' => [
['label' => '系统设置', 'options' => ['class' => 'header']],
[
'label' => '权限控制',
'icon' => 'fa fa-lock',
'url' => '#',
'items' => [
['label' => '路由', 'icon' => 'fa fa-circle-o', 'url' => ['/admin/route'],],
['label' => '权限', 'icon' => 'fa fa-circle-o', 'url' => ['/admin/permission'],],
['label' => '角色', 'icon' => 'fa fa-circle-o', 'url' => ['/admin/role'],],
['label' => '分配', 'icon' => 'fa fa-circle-o', 'url' => ['/admin/assignment'],],
['label' => '菜单', 'icon' => 'fa fa-circle-o', 'url' => ['/admin/menu'],],
],
],
],
]
) ?>
进入 127.0.0.1/advanced/backend/web/ 预览效果
2、点击“路由”,将下图中的几个路由移动到右边
查看 auth_item 数据表,发现新增了几行我们刚刚添加的记录
3、点击“权限”,然后点击 创建按钮进行创建权限
再次查看 auth_item 表,你会发现多了一条记录
创建成功之后来到权限的视图界面进行分配权限,将刚刚创建的全部路由分配给该权限
查看 auth_item_child 表,发现新增了四条记录,可以简单理解:auth_item_child 为权限分配了路由
4、点击“角色”,创建一个叫“站长”的角色
查看 auth_item 表,你会发现多了一条记录
此时你会发现,在 auth_item 表中,tyep=1表示角色、type=2表示权限。
创建成功之后来到角色的视图界面进行分配路由,将刚刚创建的“权限控制”分配给该角色
查看 auth_item_child 表,你会发现多了一条记录
可以简单理解:auth_item_child 为角色分配了权限
5、点击“分配”,然后点击当前用户的查看按钮,将“站长”这个角色分配给当前用户
查看 auth_assignment 表,你会发现多了一条记录
可以简单理解:auth_assignment 为用户分配了角色
Yii2 - (三)安装 AdminLTE 渲染后台 和 yii2-admin 集成 rbac
Yii2.0 • 鸿宇 发表了文章 • 0 个评论 • 4676 次浏览 • 2016-10-15 20:04
1、利用 AdminLTE 渲染后台模板
AdminLTE 是一个完全响应管理模板。基于 Bootstrap3 框架,易定制模板。适合多种屏幕分辨率,从小型移动设备到大型台式机。内置了多个页面,包括仪表盘、邮箱、日历、锁屏、登录及注册、404错误、500错误等页面。
① 进入 cmd,切换到 advanced 目录,输入composer require dmstr/yii2-adminlte-asset "2.*"② 拷贝 vendor\dmstr\yii2-adminlte-asset\example-views\yiisoft\yii2-app 目录下面的文件到项目 backend\views,可直接进行覆盖替换
2、进入后台 127.0.0.1/advanced/backend/web/ 查看效果
* 如果遇到页面不断刷新,可能是因为加载资源的时候在获取 google 的 css 资源
解决办法:删除加载 css 资源的那一行代码
3、url 美化
① 配置:backend/config/main.php 文件的 compontents"urlManager" => [
//用于表明 urlManager 是否启用URL美化功能
"enablePrettyUrl" => true,
// 是否在URL中显示入口脚本
"showScriptName" => false,
],② 下载附件中的 .htaccess 文件,放在 backend/web 目录下(这是为了隐藏 Index.php,apache必须要开启rewrite模块)或者自行创建 .htaccess 文件,下面是文件内容:#表示开启重写引擎
RewriteEngine on
#请求的文件或路径是不存在的,如果文件或路径存在将返回已经存在的文件或路径
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
二、安装 yii2-admin 集成 rbac
1、yii2-admin 是 yii2 rbac 的一套管理工具,实现了漂亮的界面和完整的权限管理功能
进入 cmd,切换到 advanced 目录,输入composer require mdmsoft/yii2-admin "2.x-dev"2、配置 backend/config/main.php 文件return [
// ......
'modules' => [
'admin' => [
'class' => 'mdm\admin\Module',
],
],
'aliases' => [
'@mdm/admin' => '@vendor/mdmsoft/yii2-admin',
],
'as access' => [
'class' => 'mdm\admin\components\AccessControl',
'allowActions' => [
//这里是允许访问的action
//controller/action
// * 表示允许所有,后期会介绍这个
'*'
]
],
'components' => [
'authManager' => [
'class' => 'yii\rbac\DbManager',
'defaultRoles' => ['guest'],
],
// ......
],
];3、导入 rbac 表格
执行.sql 文件:vendor\yiisoft\yii2\rbac\migrations\schema-mysql.sql (附件中提供)
或按照下面你操作步骤执行:
① 打开 console/config/main.php ,在 'components' => , 数组中添加下面代码:'authManager' => [ 'class' => 'yii\rbac\DbManager', ],
② 执行命令:yii migrate --migrationPath=@yii/rbac/migrations
4、运行 127.0.0.1/advanced/backend/web/admin/route 预览效果
附录:
默认的yii2-adminlte是蓝色主题,可以按照下面的方式配置主题① 打开backend\config\main.php 在components中添加assetManager
'components' => [
'assetManager' => [
'bundles' => [
'dmstr\web\AdminLteAsset' => [
'skin' => 'skin-red',
],
],
],
],
② 打开 backend\views\layouts\main.php,找到body将其class修改如下
<body class="hold-transition <?= \dmstr\helpers\AdminLteHelper::skinClass() ?> sidebar-mini">受ACF的影响,我们暂时看不出来什么,打开backend\controllers\SiteController.php文件,暂时先屏蔽掉 behaviors 方法的 access 部分,至于是什么意思,后面到了该讲的时候我们会说,现在就先把模版框架搭建好。如此一来,我们刷新下site/index看看,是不是有不同样式的主题了呢?其中配置文件中的skin还有下面的其他样式,随便替换,喜欢哪个用哪个,只需要简单的配置即可。(鸿宇还没配置过yellow的主题色,赶紧尝试了一把)"skin-blue",
"skin-black",
"skin-red",
"skin-yellow",
"skin-purple",
"skin-green",
"skin-blue-light",
"skin-black-light",
"skin-red-light",
"skin-yellow-light",
"skin-purple-light",
"skin-green-light"这不就简单的搭建好了我们的管理后台,样式也都是很ok。如果你需要更多的关于该模版的样式,请浏览器中打开 vendor\almasaeed2010\adminlte\index.html 文件进行参考,涵盖你想要的。
查看全部
1、利用 AdminLTE 渲染后台模板
AdminLTE 是一个完全响应管理模板。基于 Bootstrap3 框架,易定制模板。适合多种屏幕分辨率,从小型移动设备到大型台式机。内置了多个页面,包括仪表盘、邮箱、日历、锁屏、登录及注册、404错误、500错误等页面。
① 进入 cmd,切换到 advanced 目录,输入
composer require dmstr/yii2-adminlte-asset "2.*"② 拷贝 vendor\dmstr\yii2-adminlte-asset\example-views\yiisoft\yii2-app 目录下面的文件到项目 backend\views,可直接进行覆盖替换
2、进入后台 127.0.0.1/advanced/backend/web/ 查看效果
* 如果遇到页面不断刷新,可能是因为加载资源的时候在获取 google 的 css 资源
解决办法:删除加载 css 资源的那一行代码
3、url 美化
① 配置:backend/config/main.php 文件的 compontents
"urlManager" => [② 下载附件中的 .htaccess 文件,放在 backend/web 目录下(这是为了隐藏 Index.php,apache必须要开启rewrite模块)或者自行创建 .htaccess 文件,下面是文件内容:
//用于表明 urlManager 是否启用URL美化功能
"enablePrettyUrl" => true,
// 是否在URL中显示入口脚本
"showScriptName" => false,
],
#表示开启重写引擎
RewriteEngine on
#请求的文件或路径是不存在的,如果文件或路径存在将返回已经存在的文件或路径
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
二、安装 yii2-admin 集成 rbac
1、yii2-admin 是 yii2 rbac 的一套管理工具,实现了漂亮的界面和完整的权限管理功能
进入 cmd,切换到 advanced 目录,输入
composer require mdmsoft/yii2-admin "2.x-dev"2、配置 backend/config/main.php 文件
return [3、导入 rbac 表格
// ......
'modules' => [
'admin' => [
'class' => 'mdm\admin\Module',
],
],
'aliases' => [
'@mdm/admin' => '@vendor/mdmsoft/yii2-admin',
],
'as access' => [
'class' => 'mdm\admin\components\AccessControl',
'allowActions' => [
//这里是允许访问的action
//controller/action
// * 表示允许所有,后期会介绍这个
'*'
]
],
'components' => [
'authManager' => [
'class' => 'yii\rbac\DbManager',
'defaultRoles' => ['guest'],
],
// ......
],
];
执行.sql 文件:vendor\yiisoft\yii2\rbac\migrations\schema-mysql.sql (附件中提供)
或按照下面你操作步骤执行:
① 打开 console/config/main.php ,在 'components' => , 数组中添加下面代码:
'authManager' => [ 'class' => 'yii\rbac\DbManager', ],
② 执行命令:
yii migrate --migrationPath=@yii/rbac/migrations
4、运行 127.0.0.1/advanced/backend/web/admin/route 预览效果
附录:
默认的yii2-adminlte是蓝色主题,可以按照下面的方式配置主题
① 打开backend\config\main.php 在components中添加assetManager受ACF的影响,我们暂时看不出来什么,打开backend\controllers\SiteController.php文件,暂时先屏蔽掉 behaviors 方法的 access 部分,至于是什么意思,后面到了该讲的时候我们会说,现在就先把模版框架搭建好。如此一来,我们刷新下site/index看看,是不是有不同样式的主题了呢?其中配置文件中的skin还有下面的其他样式,随便替换,喜欢哪个用哪个,只需要简单的配置即可。(鸿宇还没配置过yellow的主题色,赶紧尝试了一把)
'components' => [
'assetManager' => [
'bundles' => [
'dmstr\web\AdminLteAsset' => [
'skin' => 'skin-red',
],
],
],
],
② 打开 backend\views\layouts\main.php,找到body将其class修改如下
<body class="hold-transition <?= \dmstr\helpers\AdminLteHelper::skinClass() ?> sidebar-mini">
"skin-blue",这不就简单的搭建好了我们的管理后台,样式也都是很ok。如果你需要更多的关于该模版的样式,请浏览器中打开 vendor\almasaeed2010\adminlte\index.html 文件进行参考,涵盖你想要的。
"skin-black",
"skin-red",
"skin-yellow",
"skin-purple",
"skin-green",
"skin-blue-light",
"skin-black-light",
"skin-red-light",
"skin-yellow-light",
"skin-purple-light",
"skin-green-light"
Yii2 - (二)Yii2.0 框架初始化操作
Yii2.0 • 鸿宇 发表了文章 • 0 个评论 • 2553 次浏览 • 2016-10-15 19:51
[]Windows 下直接单击运行 advanced/init.bat,输入 0 选择开发环境,然后再输入 yes 生成配置文件[/]
[]Linux 下,执行命令进入 advanced 目录,输入php init然后,输入 0 ,再输入 yes 即可。[/]
二、配置数据库文件 advanced/common/main-local.php,输入数据库账号和密码<?php
return [
'components' => [
'db' => [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=localhost;dbname=yii',
'username' => 'root',
'password' => '123456',
'charset' => 'utf8',
],
// ......
],
];
三、新建数据库 advanced,然后新建 user 用户表CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT "自增ID",
`username` varchar(255) NOT NULL COMMENT "用户名",
`auth_key` varchar(32) NOT NULL COMMENT "自动登录key",
`password_hash` varchar(255) NOT NULL COMMENT "加密密码",
`password_reset_token` varchar(255) DEFAULT NULL COMMENT "重置密码token",
`email` varchar(255) NOT NULL COMMENT "邮箱",
`role` smallint(6) NOT NULL DEFAULT "10" COMMENT "角色等级",
`status` smallint(6) NOT NULL DEFAULT "10" COMMENT "状态",
`created_at` int(11) NOT NULL COMMENT "创建时间",
`updated_at` int(11) NOT NULL COMMENT "更新时间",
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8 COMMENT="用户表";或者执行命令:
yii migrate
附录:
安装成功后,进行程序测试
前台地址: 127.0.0.1/advanced/frontend/web/ ,进入前台后点击 Signup 注册用户
后台地址:127.0.0.1/advanced/backend/web,进入后台登录用户
实战开发所需的基本配置<?php
return [
'components' => [
// 配置缓存
'cache' => [
'class' => 'yii\caching\FileCache',
],
// 配置数据库
'db' => [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=localhost;dbname=advanced',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
'tablePrefix' => 'yii_',
'enableSchemaCache' => true,
'schemaCacheDuration' => 24*3600,
'schemaCache' => 'cache',
],
],
// 配置语言
'language'=>'zh-CN',
// 配置时区
'timeZone'=>'Asia/Shanghai',
]; 查看全部
- []Windows 下直接单击运行 advanced/init.bat,输入 0 选择开发环境,然后再输入 yes 生成配置文件[/]
- []Linux 下,执行命令进入 advanced 目录,输入
php init然后,输入 0 ,再输入 yes 即可。[/]
二、配置数据库文件 advanced/common/main-local.php,输入数据库账号和密码
<?php
return [
'components' => [
'db' => [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=localhost;dbname=yii',
'username' => 'root',
'password' => '123456',
'charset' => 'utf8',
],
// ......
],
];
三、新建数据库 advanced,然后新建 user 用户表
CREATE TABLE `user` (或者执行命令:
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT "自增ID",
`username` varchar(255) NOT NULL COMMENT "用户名",
`auth_key` varchar(32) NOT NULL COMMENT "自动登录key",
`password_hash` varchar(255) NOT NULL COMMENT "加密密码",
`password_reset_token` varchar(255) DEFAULT NULL COMMENT "重置密码token",
`email` varchar(255) NOT NULL COMMENT "邮箱",
`role` smallint(6) NOT NULL DEFAULT "10" COMMENT "角色等级",
`status` smallint(6) NOT NULL DEFAULT "10" COMMENT "状态",
`created_at` int(11) NOT NULL COMMENT "创建时间",
`updated_at` int(11) NOT NULL COMMENT "更新时间",
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8 COMMENT="用户表";
yii migrate
附录:
安装成功后,进行程序测试
前台地址: 127.0.0.1/advanced/frontend/web/ ,进入前台后点击 Signup 注册用户
后台地址:127.0.0.1/advanced/backend/web,进入后台登录用户
实战开发所需的基本配置
<?php
return [
'components' => [
// 配置缓存
'cache' => [
'class' => 'yii\caching\FileCache',
],
// 配置数据库
'db' => [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=localhost;dbname=advanced',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
'tablePrefix' => 'yii_',
'enableSchemaCache' => true,
'schemaCacheDuration' => 24*3600,
'schemaCache' => 'cache',
],
],
// 配置语言
'language'=>'zh-CN',
// 配置时区
'timeZone'=>'Asia/Shanghai',
];