关于php团队开发

自己整理了一下,大致如下:

  • 开发环境 : 在主机(Mac,Windows)中使用Vagrant配置Linux虚拟机,在虚拟机中搭建lnmp环境,代码放置目录与主机实现文件共享。可以实现代码运行在linux中,而编辑代码和debug在主机中。
  • 代码管理 :在局域网中搭建GitLab服务器,客户端使用Git进行代码管理
  • 开发工具:PhpStorm,推荐按照编码规范统一编码格式(如缩进等)
  • 开发辅助:滴答清单,印象笔记,XMind
  • 项目管理:在局域网服务器搭建禅道项目管理系统
  • 测试管理:在局域网中搭建独立测试服务器,安装git客户端取得GitLab中最新代码进行测试。最好制作相应的测试数据sql,方便测试使用。
  • bug管理:使用禅道项目管理系统管理bug

安装使用phpDocumentor

安装pear
php go-pear.php
pear channel-discover pear.phpdoc.org

用7zip把下载下来的phpDocumentor-2.8.5.tgz解压缩,
然后修改package.xml文件
template:init to template_init
再次压缩成phpDocumentor.tar

pear install –nocompress phpDocumentor.tar

phpdoc -f “C:\test.php” -t “C:\outputTestDoc”
phpdoc -d “C:\xampp\htdocs\xxx” -t “C:\outputDoc”

解决ufeff

把utf-8编码文件的BOM头去掉。
可以编写程序,检测文件头的三个字符是否为0xEF、0xBB和0xBF,
如果是的话,直接删除掉即可。

也可以用Notepad++
打开文件重新编辑,设置为无BOM头的utf-8编码。

PHP UCS-2BE乱码问题

linux服务器上UCS-2编码方式与Winodws不一样,容易产生乱码。
需要做下面的处理
iconv(\’UCS-2BE\’, \’UTF-8\’, \’中文\’)

UCS-2 不等于 UTF-16。
UTF-16 每个字节使用 ASCII 字符范围编码,
而 UCS-2 对每个字节的编码可以超出 ASCII 字符范围。
UCS-2 和 UTF-16 对每个字符至多占两个字节,
但是他们的编码是不一样的。

对于 UCS-2, windows 下默认是 UCS-2LE。
用 MultibyteToWidechar(或者A2W)生成的是 UCS-2LE 的 unicode。
windows记事本可以将文本保存为 UCS-2BE,相当于多了层转换。

对于 UCS-2, linux 下默认是 UCS-2BE。
用iconv(指定UCS-2)来转换生成的是 UCS-2BE 的 unicode。
如果转换windows平台过来的 UCS-2, 需要指定 UCS-2LE。

Yii gii生成Model类中关联表数据方法

在执行主表和关联表以及字段索引SQL后,
执行下面外键约束SQL
ALTER TABLE `主表名` ADD CONSTRAINT `索引名` FOREIGN KEY (`字段名`) REFERENCES `关联表名` (`关联表字段`)

之后再使用Gii创建Model类时,
便可以自动生成含有hasOne或hasMany的方法,用来读取关联表的数据。

Yii r=gii Forbidden (#403)

发生这个错误的原因是除本地ip外不被允许访问该页面,
这也是Yii框架对于安全的考虑。
所以解决的话,在配置文件中加入允许访问的ip即可。
config\main-local.php

$config[‘modules’][‘gii’] = [
‘class’ => ‘yii\gii\Module’,
‘allowedIPs’ => array(‘127.0.0.1′,’192.168.1.*‘, ‘::1’)
];

12345