标签 php 下的文章

如果随着php命名空间使用,采用composer会非常方便,不用些重复代码,每个项目只需要通过composer就能重复利用库代码.

1 . 在github上注册一个项目,比如我的,注册为名称fn,项目版权选择的是MIT,然后更新到本地电脑,方便编写库.在本地fn目录下创建src目录,并新建文件Fn.php在src目录下.
2 . 通过cmd命令切换到fn目录下,输入composer init,来创建composer.json文件,注意编码要改成utf-8,生成的好像不是,当然也可以找一个复制过来修改.
composer.json更容是

{
    "name": "logoove/fn",
    "description": "这是一个函数组成的类库,包含大量自定义函数,后续都会从这里更新,以后不用重复定义常见方法",
        "type": "library",
          "license": "MIT",    
    "authors": [{
        "name": "yoby",
        "email": "logove@qq.com"
    }],
  "minimum-stability": "dev",
    "require": {},
    "autoload": {
        "psr-4": {
            "logoove\\fn\\": "src"
        }
    }
}

具体参数意思是name为项目名字,通过/隔开,logoove是我github账号名,fn是项目名字
description是描述,type不用改,authors自己改成你自己的,autoload是自动加载规则,改成你自己路径
完成以后就能够编写Fn.php自己了.
我们可以使用命名空间,命名空间最好统一采用 用户名\项目名
文件名要和你定义的类名相同.
没有使用命名空间的类的加载采用 require_once "PHPExcel.php";这种方式即可
这样我们就可以把以前一些项目改写成符合自动加载类库.

3 . 编写好以后记得提交到到github,然后去 (https://packagist.org) 注册一个帐号,最好也采用github帐号登录.你的每一个库在github上都有独立项目名.最后提交github地址到packagist.org即可.我们以后修改项目在github,那么composer这边如何更新呢,那就是设置同步.
先切换到profile,可以看到底部有个Your API Token,复制下来,然后去github项目的settings->Integrations & services->add server->Packagist,这时候有user,token,domain三个要填写的,我的就是 logoove,刚刚复制的Token,域名就是https://packagist.org/,这样就能自动同步了.
4 . 最后你的库就完成了,任何php项目都能使用了,一个命令搞定,免去每次复制粘贴库代码,你也能分享给更多用户使用

php开发终不免要压缩成zip然后弹出下载,当然用php本身提供的也能操作,这里有一个zip.class.php类,操作起来更容易,可以少写很多代码;

下载地址下载
里面的zip目录下
这里还有其他非常多的php常用类

$zip = new Zip();
$zip->setComment(mb_convert_encoding("中文\n",'gb2312','utf-8') . date('Y-m-d H:i'));//压缩文档的说明

$zip->addFile("123内容", "1.txt");//添加文件到压缩文件

$zip->addDirectoryContent("C:/addons/weui","weui/");//前面是要添加文件目录,后面是压缩文件目录,这个是添加目录压缩

$zip->sendZip("1.zip");//弹出压缩

以上介绍的是压缩
解压缩里面也有,可以自行了解

在大段字符串,或者生成php文件或其他文件时候,定界符非常好用,定界符有以下特点,定界符又叫heredoc技术,是必须掌握的.

  • 以<<<EOF开始标记开始后面不能有空格换行,以EOF结束标记,结束标记必须顶头写,不能有缩进和空格,且在结束标记末尾要有分号
  • 开始标记和开始标记相同,比如常用大写的EOT、EOD、EOF来表示,但是不只限于那几个,只要保证开始标记和结束标记不在正文中出现即可
  • 位于开始标记和结束标记之间的变量可以被正常解析,但是函数则不可以。在heredoc中,变量不需要用连接符.或,来拼接
  • 里面支持$var这样的变量解析,但是遇到需要拼接字符串可以用{$var}qq,也就是变量加上{}
  • 如果想输出$本身不解析,可以 \$var这样$var变量就不会解析.

掌握以上几点,基本上定界符你就非常熟悉了如果想控制输出内容,可以在定界符外面处理好,然后再连接到里面