php开发自己的composer包

php开发自己的composer包:

前提需要安装composer

网站:https://packagist.org/ 可能需要梯子访问

开发是最好先注册一下

第一步创建插件:

当想要初始化一个php项目的时候 , 或者想要开发一个类库给别人使用的时候

都需要一个composer.json文件

直接在项目目录输入 composer init 按照引导就可以生成了 , 详细的引导解释如下

This command will guide you through creating your composer.json config.
 
# 1. 输入项目命名空间
# 注意/ 必须要符合 [a-z0-9_.-]+/[a-z0-9_.-]+
Package name (<vendor>/<name>) [root/test_composer]:yourname/projectname
 
# 2. 项目描述
Description []:这是一个测试composer init 项目
 
# 3. 输入作者信息,直接回车可能出现如下提示,有的系统可以直接回车,具体为什么?这里不详细介绍
 Invalid author string.  Must be in the format: John Smith <john@example.com>
# 3.1. 注意必须要符合 John Smith 
Author [, n to skip]: John Smith <john@example.com>
 
# 4. 输入最低稳定版本,stable, RC, beta, alpha, dev
Minimum Stability []:dev
 
# 5. 输入项目类型
Package Type (e.g. library, project, metapackage, composer-plugin) []:library
 
# 6. 输入授权类型
License []:
 
Define your dependencies.
 
# 7. 输入依赖信息
Would you like to define your dependencies (require) interactively [yes]?
 
# 7.1. 如果需要依赖,则输入要安装的依赖
Search for a package:php
 
# 7.2. 输入版本号
Enter the version constraint to require (or leave blank to use the latest version): >=5.4.0
 
#  如需多个依赖,则重复以上两个步骤(7.1/7.2)
Search for a package:
 
# 8. 是否需要require-dev,
Would you like to define your dev dependencies (require-dev) interactively [yes]?
 
 
{
    "name": "dduan/test_compser",
    "description": "这是一个测试composer init 项目",
    "type": "library",
    "require": {
        "php": ">=5.4.0"
    },
    "authors": [
        {
            "name": "John Smith",
            "email": "[email protected]"
        }
    ],
    "minimum-stability": "dev"
}
# 9. 是否生成composer.json
Do you confirm generation [yes]?
 
# 现在安装依赖项吗
Would you like to install dependencies now [yes]?

composer.json

{
    "name": "wumm/oneinit", 
    "description": "测试开发 composer",
    "autoload": {
        "psr-4": {
            "Oneinit\\": "src/"
        }
    },
    "autoload-dev":{
        "psr-4":{
            "Oneinit\\":"src/"
            }
        },
    "authors": [
        {
            "name": "John Smith",
            "email": "[email protected]",
            "homepage":"https://github.com/oneinit"
        }
    ],
    "license": "MIT",
    "keywords": [
        "测试1",
        "测试2"
    ],
    "homepage":"https://github.com/oneinit",
    "require": {
        "php":">=5.6.0"
    }
}

随后composer update
php开发自己的composer包_第1张图片
建立一下src/Verify.php



namespace   Oneinit;//要与composer.json   "Oneinit\\":"src/"  对应

/**
 * 校验工具类,如验证ip、手机、邮箱等等
 * Class VerifyTools
 */

class Verify
{


    /**
     * 说明:判断是否为合法的ip地址
     * 判断是否为合法的ip地址
     * @param string $ip ip地址
     * @return bool|int 不合法则返回false,合法则返回4(IPV4)或6(IPV6)
     */
    function isIPAddress($ip)
    {
        $ipv4Regex = '/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/';

        $ipv6Regex = '/^(((?=.*(::))(?!.*\3.+\3))\3?|([\dA-F]{1,4}(\3|:\b|$)|\2))(?4){5}((?4){2}|(((2[0-4]|1\d|[1-9])?\d|25[0-5])\.?\b){4})$/i';

        if (preg_match($ipv4Regex, $ip))
            return 4;

        if (false !== strpos($ip, ':') && preg_match($ipv6Regex, trim($ip, ' []')))
            return 6;

        return false;
    }


    // 说明: 验证邮箱格式
    function isValidEmail($email)
    {
        $check = false;
        if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
            $check = true;
        }
        return $check;
    }
    /**
    $email = "[email protected]";
    $check = is_validemail($email);
    echo $check;
    //If the output is 1, then email is valid.
     */


    /**
     * 判断是否为手机访问
     * @return  boolean
     */
    function isMobile()
    {

        $sp_is_mobile = false;

        if (empty($_SERVER['HTTP_USER_AGENT'])) {
            $sp_is_mobile = false;
        } elseif (
            strpos($_SERVER['HTTP_USER_AGENT'], 'Mobile') !== false // many mobile devices (all iPhone, iPad, etc.)
            || strpos($_SERVER['HTTP_USER_AGENT'], 'Android') !== false
            || strpos($_SERVER['HTTP_USER_AGENT'], 'Silk/') !== false
            || strpos($_SERVER['HTTP_USER_AGENT'], 'Kindle') !== false
            || strpos($_SERVER['HTTP_USER_AGENT'], 'BlackBerry') !== false
            || strpos($_SERVER['HTTP_USER_AGENT'], 'Opera Mini') !== false
            || strpos($_SERVER['HTTP_USER_AGENT'], 'Opera Mobi') !== false
        ) {
            $sp_is_mobile = true;
        } else {
            $sp_is_mobile = false;
        }

        return $sp_is_mobile;
    }

    /**
     * 判断是否为微信访问
     * @return boolean
     */
    function isWeiXin()
    {

        if (strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false) {
            return true;
        }
        return false;
    }


    /**
     * 检查手机号码格式
     * @param $mobile 手机号码
     */
    function checkMobile($mobile)
    {

        if (preg_match('/1[0123456789]\d{9}$/', $mobile))
            return true;
        return false;
    }


    /**
     * 检查固定电话
     * @param $mobile
     * @return bool
     */
    function checkTelephone($mobile)
    {

        if (preg_match('/^([0-9]{3,4}-)?[0-9]{7,8}$/', $mobile))
            return true;
        return false;
    }

    /**
     * 当前请求是否是https
     * @return type
     */
    function isHttps()
    {
        return isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] && $_SERVER['HTTPS'] != 'off';
    }
}

后再根目录 创建一下 index.php 引入类



use Oneinit\Verify;

header('content-type:text/html;charset=utf-8');

include  './vendor/autoload.php';

$var  = (new Verify)->isValidEmail('[email protected]');

die(var_dump($var));  //测试一下

用本地测试一下
参考:https://blog.csdn.net/taoshihan/article/details/116824814

第二步创建并发布插件:

创建一个github 仓库
php开发自己的composer包_第2张图片
注意此名字 与相同哦

随后ssh提交

git clone  git@github.com:yuansql/verify.git
git add  *   
git  commit -m  '第一次提交插件'
git  push --set-upstream ssh地址  master

最好添加一下版本号


可以了后发布一下composer包
在这里插入图片描述
然后就这样了
php开发自己的composer包_第3张图片
最好在update一下更好哦

第三部测试封装的插件:

创建一下文件夹 拉取一下测试一下

composer require wumm/verify
php开发自己的composer包_第4张图片
成功了
封装更多工具类参考:https://www.jianshu.com/p/8ab3dce8d6f1
感兴趣看一看一下:https://github.com/crazyjy/phptools/blob/master/README.md
接下来找个疫情期间小区发的laravel框架用一下
安装 composer require wumm/verify
创建一下文件
php开发自己的composer包_第5张图片

访问一下路由看看可有用吗?成功这样方便了很多
php开发自己的composer包_第6张图片

你可能感兴趣的:(后端,php,composer,php,laravel)