1.下载Composer_installer.phar

https://getcomposer.org/composer.phar

重命名为  composer_installer.phar

将文件放入根目录WWW

2.开启PHP 的 openssl 扩展

打开对应php版本的php,ini

去掉注释;

3.安装Composer

cmd -> d: -> cd d:/phpstudy/www
php composer_installer.phar

4.设置使用Composer命令

在 C:/   下创建  initcmdenv.cmd  文件 内容如下

@echo off

:: Temporary system path(为当前命令行增加额外的PATH,可随意增加不影响全局系统)
set PATH=%PATH%; :: Commands(增加新的快捷命令,必须为DOSKEY 快捷名称=完整命令)
DOSKEY composer=php d:/phpstudy/www/composer.phar $* ::Show something(显示初始化的内容,可以删掉) echo ========DOSKEY========== DOSKEY /macros echo ========END==========

创建  C:\Windows\System32\cmd.exe  快捷方式

设置开解方式目标为    %windir%/system32/cmd.exe /K C:/initcmdenv.cmd

设置好后 直接运行这个 cmd.exe 快捷方式 就可以直接在命令行的任何地方直接使用  composer 命令了。

5.下载 Composer归档包

2个版本,advanced 和 basic :

https://github.com/yiisoft/yii2/releases/download/2.0.9/yii-advanced-app-2.0.9.tgz

https://github.com/yiisoft/yii2/releases/download/2.0.9/yii-basic-app-2.0.9.tgz

下载后解压缩至根目录 WWW

在解压的归档包 composer.json 中添加 中国镜像 地址

{
"repositories": {
"packagist": {
"type": "composer",
"url": "https://packagist.phpcomposer.com"
}
}
}

6. require "fxp/composer-asset-plugin:~1.1.1"  查询并添加最新版本

php composer.phar global require "fxp/composer-asset-plugin:~1.1.1"

或

composer global require "fxp/composer-asset-plugin:~1.1.1"

7.创建Yii2项目

cmd快捷方式 -> d: -> cd d:/phpstudy/www/baisc (advanced)

advanced:

composer create-project --prefer-dist --stability=dev yiisoft/yii2-app-advanced ../yii2test

basic:

composer create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic ../yii2test

8.Token   (github)

create a new Token

https://github.com

MyID:50486****@**.com   Password:23*********

⑴

⑵

⑶

⑷

⑸

⑹

将得到的Token输入即可。

等待项目创建完成。

9.在创建的项目内添加phpexcel扩展

{
"require": {
"php": ">=5.4.0",
"yiisoft/yii2": "~2.0.5",
"yiisoft/yii2-bootstrap": "~2.0.0",
"yiisoft/yii2-swiftmailer": "~2.0.0",
"phpoffice/phpexcel": "dev-develop"
},
"config": {
"process-timeout": 1800,
"secure-http": false
},
"repositories": {
"packagist": {
"type": "composer",
"url": "https://packagist.phpcomposer.com"
}
}
}
cmd快捷方式 -> d: -> cd d:/phpstudy/www/NewProject
composer update

10.使用YII2已写好的demo登录

User  SQL:

CREATE TABLE `user` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`username` varchar(32) NOT NULL,
`email` varchar(32) NOT NULL,
`password` varchar(32) NOT NULL,
`authKey` varchar(100) NOT NULL DEFAULT '',
`accessToken` varchar(100) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

使用gii生成 model User 。

将Class  User  implements \yii\web\IdentityInterface

内容加上登录验证代码

  /**
* @inheritdoc
*/
public static function findIdentity($id)
{
return static::findOne($id);
//return isset(self::$users[$id]) ? new static(self::$users[$id]) : null;
} /**
* @inheritdoc
*/
public static function findIdentityByAccessToken($token, $type = null)
{
return static::findOne(['access_token' => $token]);
/*foreach (self::$users as $user) {
if ($user['accessToken'] === $token) {
return new static($user);
}
} return null;*/
} /**
* Finds user by username
*
* @param string $username
* @return static|null
*/
public static function findByUsername($username)
{
$user = User::find()
->where(['username' => $username])
->asArray()
->one(); if($user){
return new static($user);
} return null;
/*foreach (self::$users as $user) {
if (strcasecmp($user['username'], $username) === 0) {
return new static($user);
}
} return null;*/
} /**
* @inheritdoc
*/
public function getId()
{
return $this->id;
} /**
* get level by username
* @param string username
* @return string level
*/
public function getLevelByusername($username)
{
$user = User::find()
->where(['username' => $username])
->asArray()
->one();
return $user['level'];
} /**
* @inheritdoc
*/
public function getAuthKey()
{
return $this->authKey;
} /**
* @inheritdoc
*/
public function validateAuthKey($authKey)
{
return $this->authKey === $authKey;
} /**
* Validates password
*
* @param string $password password to validate
* @return boolean if password provided is valid for current user
*/
public function validatePassword($password)
{
return $this->password === $password;
}

这样设置的User就可以直接登录使用啦。

Composer Yii2 不设置全局变量 归档安装 Win7的更多相关文章

  1. composer在windows下安装并且设置全局变量

    Composer是 PHP 用来管理依赖(dependency)关系的工具.你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件. 1丶使用安 ...

  2. 【解决方法】安装Win7和linux双系统后,linux报错“无法分配所提交的分区 not enough free space on disks”问题,以及win7无法启动“BootMGR image is corrupt....”问题

    近日,在笔记本上重装了Win7 企业版(64位)后,想装个linux双系统,于是开始安装 centOS 6.2(光盘安装) 硬盘分了一个主分区(c盘),一个扩展分区(3个逻辑分区:d,e,f盘),然后 ...

  3. 预装WIN8系统的电脑安装WIN7的方法

    前些天,给一位客户的本本安装WIN7,因为原来预装了WIN8,结果按常规方法安装一直没有成功,不管是光盘还U盘.所以心里一直有个疑问,所以留意查阅了有关资料和相关的文章,终于明白了问题所在,现在在这里 ...

  4. Mac OS X 安装Win7双系统

    Mac10安装双系统 为了有一个纯净的开发环境,就在mac电脑中安装windows虚拟机.刚开始使用还很顺利,两个系统的交互很方便,mac用来下载.搜索和写笔记:windows纯开发.时间长了以后关机 ...

  5. X240s安装Win7 以及如何启用ExpressCache

    新买了一台X240S笔记本,尝试了带的Win8正版一个月后,实在无法适应Win8,干脆退回Win7完事,以下为安装过程, 第一步:制作启动U盘 首先,下载一个iso格式的Win7安装镜像文件,利用微软 ...

  6. 安装Win7提示Windows无法安装到磁盘怎么办

    Windows之家(www.windowszj.com):在安装Win7系统的过程中,由于每台电脑的状态不一样,比如硬件配置原因,或者是硬盘格式.硬盘状态等问题,会使得每台电脑在安装过程中都会有些不一 ...

  7. U盘安装Win7操作系统

    玩转Windows7系统镜像四部曲 Step 1: 下载Win7 ISO系统镜像 温馨提示:请您尽量选用Win7之家​提供的官方原版镜像安装,因为正版比各种所谓的"精简版.纯净版" ...

  8. U盘启动笔记本无法安装Win7问题和解决

    用“大白菜”工具制作启动U盘,从U盘启动后进入Win PE环境安装Win7,提示“安装win7系统安装程序无法创建新的系统分区,也无法定位现有系统分区”.经以下各种努力后仍无法正常安装: 在BIOS里 ...

  9. ubuntu系统中的VMware 安装win7 Ghost镜像的几个坑

    1.ghost镜像安装时要先分区 2.分区后要激活 3.VM(虚拟机安装win7 提示 :units specified don't exist, SHSUCDX can't install)解决方法 ...

随机推荐

  1. C# in Depth阅读笔记3:C#3特性

    1.隐式类型 var a=new Dictionary<string ,list<person>>();可以简化代码,增强可读性. 2.简化初始化 (1)设置简单属性 Pers ...

  2. table+js实现网站左侧列表下拉隐藏

    <script language="javascript">                    function showHide(obj){            ...

  3. SqlServer导库语句

    GO /****** 对象: StoredProcedure [dbo].[sp_ExportDatabase] 脚本日期: 07/18/2013 12:37:26 ******/ SET ANSI_ ...

  4. iOS修改截取图片不规范问题

    +(UIImage *) imageCompressForWidth:(UIImage *)sourceImage targetWidth:(CGFloat)defineWidth{ UIImage ...

  5. start.sh

    JAVA_OPTS=" -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true "JAVA_MEM_OPTS=" ...

  6. 【codevs】2292图灵机游戏

    题 Shadow最近知道了图灵机是什么(Shadow:就是一行格子和一个机器头移来移去的呗!),于是他突发奇想,创造了一个新游戏——“图灵机游戏”(Shadow:好听吧?). 游戏规则如下: 在一条长 ...

  7. Hibernate之总结

    以前做.net,最近做java项目,负责服务端的开发,直接用的jdbc,线程安全问题.缓存同步问题以及连接池什么的,都是手动写,不但麻烦而且容易出错.项目结束,赶快抽时间学了下hibernate,每天 ...

  8. c++中多态性、dynamic_cast、父类指针、父类对象、子类指针、子类对象

    c++多态性是依靠虚函数和父类指针指向子类对象来实现的.简单来说,父类中定义虚函数,父类指针指向子类对象,父类指针调用函数时调用的就是子类的函数. 父类没有定义虚函数,父类指针指向子类对象时,父类指针 ...

  9. Mocha 从0开始

    Mocha Mocha 是具有丰富特性的 JavaScript 测试框架,可以运行在 Node.js 和浏览器中,使得异步测试更简单更有趣.Mocha 可以持续运行测试,支持灵活又准确的报告,当映射到 ...

  10. LINUX常用命令--基础篇(一)

    1. man 对你熟悉或不熟悉的命令提供帮助解释 eg:man ls 就可以查看ls相关的用法 注:按q键或者ctrl+c退出,在linux下可以使用ctrl+c终止当前程序运行. 2. ls 查看目 ...