create your own composer package

16
Create your own composer package

Upload: lattapon-yodsuwan

Post on 14-Apr-2017

307 views

Category:

Software


2 download

TRANSCRIPT

Page 1: Create your own composer package

Create your own composer package

Page 2: Create your own composer package

Why• Easy to manage dependencies

• Easy to use with 3rd party library

Page 3: Create your own composer package

normally `require`

<?php

require_once ‘pantip/pantip.class.php’; require_once ‘twitter/twitter.class.php’; require_once ‘facebook/facebook.class.php’; require_once ‘instagram/instagram.class.php’;

Page 4: Create your own composer package

the composer way

<?php

require_once ‘vendor/autoload.php’;

Page 5: Create your own composer package

Create Package$ composer init

// composer.json

{ "name": “clozed2u/hello-composer", "authors": [ { "name": "Lattapon Yodsuwan", "email": "[email protected]" } ], "require": {} }

Page 6: Create your own composer package

Directory Structure

hello-composer | |__src | |__Hello.php | |__tests | |__HelloTest.php | |__composer.json | |__optional(circle.yml, .travis.yml, phpunit.xml)

Page 7: Create your own composer package

Hello class

<?php

namespace Hello;

class Hello { public function sayAnything($message) { return $message; } }

Page 8: Create your own composer package

Hello Tests<?php

use \Hello\Hello;

class HelloTest extends PHPUnit_Framework_TestCase { public function testSayAnything() { $said = new Hello(); $this->assertEquals(

"X JAPAN ROCK!!”, $said->sayAnything("X JAPAN ROCK!!”) );

} }

Page 9: Create your own composer package

Add autoload to composer// composer.json

{ …,

"require-dev": { "phpunit/phpunit": "*" }, "autoload": { "psr-4": {"Hello\\": "src/"} } }

Page 10: Create your own composer package

Push to git and release

Page 11: Create your own composer package

Use package

$ composer install

// composer.json

{ "repositories": [ { "type": "vcs", "url": "https://github.com/clozed2u/hello-composer.git" } ], "require": { "clozed2u/hello-composer": "1.0.0" } }

Page 12: Create your own composer package

Push to packagist.org

$ composer require clozed2u/hello-composer

Page 13: Create your own composer package

Don’t forget continuous integration

Page 14: Create your own composer package

/clozed2u/hello-composer

Page 15: Create your own composer package

MeName: Lattapon Yodsuwan

Github/Twitter: @clozed2u

Email: [email protected]

Page 16: Create your own composer package

We are hiring