九月 21st, 2016 by lanxinxichen@126.com

 
最近做的一个二开开源项目,项目本身使用的是“优雅”的laravel框架开发的,我也顺带着了解了一下laravel框架。由于项目需要多平台的会员数据统一,所以第一时间想到用UCenter进行会员整合。
上次使用UCenter的时候还是2014年,那时候的会员整合我不负责,也就没在这上面下太多功夫,终于这次揭开了UCenter神秘的面纱。
安装后的首页
ucenter1
应用列表
ucenter2
首先,先添加一个新应用,填写相应的表单。应用接口文件名称需要填写应用的路由地址,这个可以先空着,填写完毕之后保存,此时的通信情况应该是通信失败的。
在github上面我们能找到好几个关于laravel – Ucenter的项目,我自己根据看根据别人的项目修改了bug:https://github.com/lanxinxichen/laravel5-ucenter ,另外推荐尝试https://github.com/binaryoung/ucenter,个人感觉比我fork的这个好一些。

安装UCenter

只要在你的 composer.json 文件require中加入下面内容,就能获得最新版.
“goodspb/laravel5-ucenter”: “dev-master”
然后需要运行 “composer update” 来更新你的项目
安装完后,在 app/config/app.php 文件中找到 providers 键,添加:
Goodspb\Laravel5Ucenter\UcenterServiceProvider::class,
找到 aliases 键,添加:
‘Ucenter’ => Goodspb\Laravel5Ucenter\Facades\Ucenter::class,
 
他这个版本config::get是有问题的,可以参看我的修改记录进行修改。
https://github.com/lanxinxichen/laravel5-ucenter/commit/01d4714174ae4acba3aa9fcfef6bfb6b931e1aa2
在config文件中增加一个ucenter.php的文件,然后添加以下内容
 
<?php
return [
‘url’       => env(‘ucenter_url’,’/api/ucapi’), // 网站UCenter接受数据地址
‘api’       => env(‘ucenter_api’,’http://www.ucn.net’), // UCenter 的 URL 地址, 在调用头像时依赖此常量
‘connect’   => env(‘ucenter_connect’,’mysql’), // 连接 UCenter 的方式: mysql/NULL, 默认为空时为 fscoketopen()
‘dbhost’    => env(‘ucenter_dbhost’,’localhost’), // UCenter 数据库主机
‘dbuser’    => env(‘ucenter_dbuser’,’root’), // UCenter 数据库用户名
‘dbpw’      => env(‘ucenter_dbpw’,”), // UCenter 数据库密码
‘dbname’    => env(‘ucenter_dbname’,’ucenter’), // UCenter 数据库名称
‘dbcharset’ => env(‘ucenter_dbcharset’,’utf8′),// UCenter 数据库字符集
‘dbtablepre’=> env(‘ucenter_dbtablepre’,’uc_’), // UCenter 数据库表前缀
‘key’       => env(‘ucenter_key’,’76bc3bbK5aoWVrb26juV1vk4uq4c2aSNQvzv70Zs12′), // 与 UCenter 的通信密钥, 要与 UCenter 保持一致
‘charset’   => env(‘ucenter_charset’,’utf-8′), // UCenter 的字符集
‘ip’        => env(‘ucenter_ip’,’127.0.0.1′), // UCenter 的 IP, 当 UC_CONNECT 为非 mysql 方式时, 并且当前应用服务器解析域名有问题时, 请设置此值
‘appid’     => env(‘ucenter_appid’,2), //当前应用的 ID
‘ppp’       => env(‘ucenter_ppp’,20), //当前应用的每页数量
];
注意:上面的配置根据自己实际环境进行修改。
 

配置路由

在项目中的相应位置添加通信api的路由
Route::any(Config::get(‘ucenter.url’), function(){
return \Goodspb\Laravel5Ucenter\UcenterApi::execute();
});
 
这时候就可以返回UCenter应用管理中心,把之前空的接口文件路由修改为自己定义的路由,比如我设置的路由是/api/ucapi那么在填写的时候需要填写ucapi,不带/api/。因为我在这里被坑了,所以附上通信接口调试文章https://my.oschina.net/ppss/blog/744743    
ucenter3
通信成功!
 
可以通过以上链接里面的办法把接口通信调试成功,然后就是实现自己的业务逻辑了。

Posted in PHP Tagged with: , ,

九月 21st, 2016 by lanxinxichen@126.com

laravel
最近一直在专心复习java,而且打算完全转型java,所以自认为这是我PHP项目生涯的末期。然而在这段日子里,我有幸接触了大名鼎鼎的Laravel。
从开始接触到现在也不过短短三天时间,只简单把运行原理搞懂了,所以如果本文有失偏驳,与您观点不符,那实在是抱歉,反正我也不改。
接触Laravel之前,只听外界她的优雅,接触之后才感慨实至名归。当然也发现了另外一个与优雅齐名的缺点:慢。本篇文章并不打算介绍Laravel的入门,单纯吐槽一下最近使用的真实感受。
Laravel 对PHP版本要求比较高,放眼国内,虚拟主机的php版本都还停留在5.3的水平,再加上composer这种新概念的冲击(还有网络访问比较困难),Laravel在国内出现了水土不服的现象。熟悉java,Python,Nodejs的人对包管理一定不会陌生,java的Maven,Python的pip,Nodejs的npm都是使用起来特别爽的,简简单单的命令行就能实现下载/更新依赖了,composer也是如此,只不过是专门针对PHP的包管理。Laravel 注重快捷高效的开发,当你通过composer全局安装Laravel,并将其加入到环境变量之后,直接通过“laravel new project”就能创建项目了,并且内置了artisan实用的命令行工具,配合Phpstorm让开发效率进一步提升。配置Phpstorm 配置artisan命令行
Laravel依托于composer,所以项目搬迁以及升级都会非常方便。方便是建立在熟悉并知道如何使用的情况下,我在整合laravel和UCenter的时候也遇到了很多问题,一来是文档不够完善,二来就是提问的人太少了,很难找到解决问题的办法,只能靠自己一点儿一点儿琢磨。
Laravel 实在是太慢了。只要在google上面搜索laravel slow,就能找到很多吐槽文章。针对我目前这个项目,平均每个网页访问时间都要在1.3~1.7秒,这速度根本不能忍吧。尽管了我已经做了一些优化工作,比如routes cache,config cache,class optimize,开启opcache,也只是略微改善,并没有提高多少速度,相比以前开发的项目,她的速度简直是惨不忍睹。想到这里我把标题中的“优雅”两个字删掉了。据说Lumen是速度很快,没有亲自体验。
客观来讲,对Laravel接触时间还是太短了,我这只能算个Laravel的初体验。毋庸置疑的是,借助composer上面优秀的库,Laravel对大项目的开发速度肯定会有所提高,包括她对RESTful 的友好支持都是让人心动的,对于小项目而言,选择其他框架可能是更好的选择。
 
最后,恶趣味的我专门在博客园找了一篇对Laravel的吐槽十分精彩的文章(包括评论):
http://www.cnblogs.com/yjf512/p/4031782.html#top

Posted in PHP Tagged with: ,