2017 © Pedro Peláez
 

library hasher

image

baoniu/hasher

  • Saturday, January 21, 2017
  • by baoniu
  • Repository
  • 1 Watchers
  • 0 Stars
  • 5 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 3 Versions
  • 0 % Grown

The README.md

Build Status, (*1)

开发Laravel扩展并发布到packagist.org

试试 composer require baoniu/hasher

开发package

创建项目目录

laravel new package-lesson
cd package-lesson
mkdir packages/testHelper/hasher/src -p

修改composer.json配置文件

"autoload": {
    "classmap": [
        "database"
    ],
    "psr-4": {
        "App\\": "app/",
        "TestHelper\\Hasher\\": "packages/testHelper/hasher/src/"
    }
},
//重新生成autload文件
composer dump-autoload

创建Md5Hasher类文件

packages/testHelper/hasher/src

<?php
namespace TestHelper\Hasher;
class MD5Hasher
{
    public function make($value, array $options = [])
    {
        $salt = isset($options['salt']) ? $options['salt'] : '';
        return hash('md5', $value . $salt);
    }
    public function check($value, $hashValue, $options = [])
    {
        return $this->make($value, $options) === $hashValue;
    }
}

生成provider (提供者)

php artisan make:provider MD5HasherProvider

cp app/Providers/MD5HasherProvider.php packages/testHelper/hasher/src

修改
packages/testHelper/hasher/src/MD5HasherProvider.php
文件的命名空间为
namespace TestHelper\Hasher;

修改注册函数

vim packages/testHelper/hasher/src/MD5HasherProvider.php
public function register()
{
    //实现调用app('md5hash'),得到MD5Hahser实例
    $this->app->singleton('md5hash', function(){
        return new MD5Hasher();
    });
}

配置

vim config/app.php
在providers数组中添加我们的Provider,即将下面内容加入其中
TestHelper\Hasher\MD5HasherProvider::class,

测试

php artisan tinker
>>> app('md5hash')->make('12345', ['salt'=>121]);
=> "9f7095ad6ff1ad82bc5154466a48136d"

将package发布到packagist.org

设置composer配置文件

cd packages/testHelper/hasher
composer init 

//将下面内容添加到刚刚生成的composer.json文件
"autoload": {
    "psr-4": {
        "TestHelper\\Hasher\\": "src/"
    }
}

初始化git配置文件

git init
git add .
git commit -m 'init project'
git remote add origin https://github.com/baoniu/TestLaravelPackage.git
git push -u origin master

配置packages token

去到github项目页面
https://github.com/baoniu/TestLaravelPackage
点击 setting 
-> Integrations&services
-> Add services
-> Packagist

填写Packagist.org上的User和Token信息
https://packagist.org/profile/ 查看Token

提交到packagist.org

https://packagist.org/packages/submit
填写项目的github克隆地址
https://github.com/baoniu/TestLaravelPackage.git
点击Check -> Submit

现在其它开发者可以使用composer下载你的包了

更新版本,自动同步到packagist.org

git add .
git commit -m '....'
git push

git tag 1.0 -a
git push --tags

使用PHPUnit为Package编写单元测试

添加phpunit

vim packages/testHelper/hasher/src/composer.json
将下面内容添加到该文件
"require-dev": {
    "phpunit/phpunit": "5.5.*"
},

更新
composer update

创建测试用例

mkdir packages/testHelper/hasher/src/tests
touch packages/testHelper/hasher/src/tests/MD5HasherTest

<?php
use PHPUnit\Framework\TestCase;
class MD5HasherTest extends TestCase
{
    protected $hasher;
    public function setUp()
    {
        $this->hasher = new \TestHelper\Hasher\MD5Hasher();
    }
    public function testMD5HasherMake()
    {
        $password = md5('password');
        $passwordTwo = $this->hasher->make('password');
        $this->assertEquals($password, $passwordTwo);
    }
}

测试

vendor/bin/phpunit tests/MD5HasherTest

The Versions

21/01 2017

dev-master

9999999-dev

  Sources   Download

The Development Requires

by Mr.Chen

21/01 2017

2.0

2.0.0.0

  Sources   Download

The Development Requires

by Mr.Chen

21/01 2017

1.0

1.0.0.0

  Sources   Download

The Development Requires

by Mr.Chen