Composer packages Installing and Using Composer, Packagist, Packaging your code Mario Peshev...
-
Upload
josephine-gilmore -
Category
Documents
-
view
239 -
download
0
Transcript of Composer packages Installing and Using Composer, Packagist, Packaging your code Mario Peshev...
![Page 1: Composer packages Installing and Using Composer, Packagist, Packaging your code Mario Peshev Technical Trainer Software University .](https://reader036.fdocuments.us/reader036/viewer/2022062309/56649ec85503460f94bd4be6/html5/thumbnails/1.jpg)
Composer packagesInstalling and Using Composer, Packagist, Packaging your code
Mario PeshevTechnical Trainerhttp://peshev.netSoftware Universityhttp://softuni.bg
![Page 2: Composer packages Installing and Using Composer, Packagist, Packaging your code Mario Peshev Technical Trainer Software University .](https://reader036.fdocuments.us/reader036/viewer/2022062309/56649ec85503460f94bd4be6/html5/thumbnails/2.jpg)
Table of Contents1. PHP package
2. Composer overview
3. Advantages
4. Download and install
5. Autoloading
6. Packagist
7. Using Composer
8. Packaging your own code
9. Famous Libraries Examples2
![Page 3: Composer packages Installing and Using Composer, Packagist, Packaging your code Mario Peshev Technical Trainer Software University .](https://reader036.fdocuments.us/reader036/viewer/2022062309/56649ec85503460f94bd4be6/html5/thumbnails/3.jpg)
PHP packageimport(‘weatherForecast.arras.*’);include(‘weather.arras.*’);
![Page 4: Composer packages Installing and Using Composer, Packagist, Packaging your code Mario Peshev Technical Trainer Software University .](https://reader036.fdocuments.us/reader036/viewer/2022062309/56649ec85503460f94bd4be6/html5/thumbnails/4.jpg)
4
A directory containing something. In this case it is PHP code, but in theory it could be anything.
Used to help you logically group related elements just like you write classes to group related functions and data together.
What is PHP package?
![Page 5: Composer packages Installing and Using Composer, Packagist, Packaging your code Mario Peshev Technical Trainer Software University .](https://reader036.fdocuments.us/reader036/viewer/2022062309/56649ec85503460f94bd4be6/html5/thumbnails/5.jpg)
Composer overviewrequires PHP 5.3.2+ to run
![Page 6: Composer packages Installing and Using Composer, Packagist, Packaging your code Mario Peshev Technical Trainer Software University .](https://reader036.fdocuments.us/reader036/viewer/2022062309/56649ec85503460f94bd4be6/html5/thumbnails/6.jpg)
6
Dependency manager for PHP. List your project’s dependencies in a composer.json file and with a few simple commands - Composer will automatically download your project’s dependencies and setup autoloading for you.
What is Composer?
![Page 7: Composer packages Installing and Using Composer, Packagist, Packaging your code Mario Peshev Technical Trainer Software University .](https://reader036.fdocuments.us/reader036/viewer/2022062309/56649ec85503460f94bd4be6/html5/thumbnails/7.jpg)
7
It is not a package manager. It deals with "packages" or libraries, but it manages them on a per-project basis, installing them in a directory (e.g. vendor) inside your project.
By default it will never install anything globally.
What is Composer?
![Page 8: Composer packages Installing and Using Composer, Packagist, Packaging your code Mario Peshev Technical Trainer Software University .](https://reader036.fdocuments.us/reader036/viewer/2022062309/56649ec85503460f94bd4be6/html5/thumbnails/8.jpg)
Advantages
![Page 9: Composer packages Installing and Using Composer, Packagist, Packaging your code Mario Peshev Technical Trainer Software University .](https://reader036.fdocuments.us/reader036/viewer/2022062309/56649ec85503460f94bd4be6/html5/thumbnails/9.jpg)
9
lot of PHP libraries that are compatible with Composer Already use PHP framework ready to be used in your project these “packages” are listed on
Packagist is the official repository for Composer-compatible PHP libraries!
Why use Composer?
![Page 10: Composer packages Installing and Using Composer, Packagist, Packaging your code Mario Peshev Technical Trainer Software University .](https://reader036.fdocuments.us/reader036/viewer/2022062309/56649ec85503460f94bd4be6/html5/thumbnails/10.jpg)
Download and Install
![Page 11: Composer packages Installing and Using Composer, Packagist, Packaging your code Mario Peshev Technical Trainer Software University .](https://reader036.fdocuments.us/reader036/viewer/2022062309/56649ec85503460f94bd4be6/html5/thumbnails/11.jpg)
11
Download and Install for NON-Windows users
Download: $ curl -sS https://getcomposer.org/installer | php
If you don’t have curl:
$ php -r "readfile('https://getcomposer.org/installer');" | php
![Page 12: Composer packages Installing and Using Composer, Packagist, Packaging your code Mario Peshev Technical Trainer Software University .](https://reader036.fdocuments.us/reader036/viewer/2022062309/56649ec85503460f94bd4be6/html5/thumbnails/12.jpg)
12
Download and Install for NON-Windows users
recommended directory is /usr/local/bin
install composer to a specific directory:
$ cd /path/to/my/project$ curl -sS https://getcomposer.org/installer | php -- --install-dir=bin
![Page 13: Composer packages Installing and Using Composer, Packagist, Packaging your code Mario Peshev Technical Trainer Software University .](https://reader036.fdocuments.us/reader036/viewer/2022062309/56649ec85503460f94bd4be6/html5/thumbnails/13.jpg)
13
Download and Install on Windows
Download https://getcomposer.org/Composer-Setup.exe
php -r "readfile('https://getcomposer.org/installer');" | php
If you don’t use the Composer-Setup installer - don’t forget to set up your $PATH so that you can just call composer from any directory in your command line.
![Page 14: Composer packages Installing and Using Composer, Packagist, Packaging your code Mario Peshev Technical Trainer Software University .](https://reader036.fdocuments.us/reader036/viewer/2022062309/56649ec85503460f94bd4be6/html5/thumbnails/14.jpg)
Packagist
![Page 15: Composer packages Installing and Using Composer, Packagist, Packaging your code Mario Peshev Technical Trainer Software University .](https://reader036.fdocuments.us/reader036/viewer/2022062309/56649ec85503460f94bd4be6/html5/thumbnails/15.jpg)
15
Packagist
Packagist is the main Composer repository A Composer repository is a place where you can get packages
from You can automatically require any package that is available there https://packagist.org – You can browse all available packages on
the official website
![Page 16: Composer packages Installing and Using Composer, Packagist, Packaging your code Mario Peshev Technical Trainer Software University .](https://reader036.fdocuments.us/reader036/viewer/2022062309/56649ec85503460f94bd4be6/html5/thumbnails/16.jpg)
Using Composer
![Page 17: Composer packages Installing and Using Composer, Packagist, Packaging your code Mario Peshev Technical Trainer Software University .](https://reader036.fdocuments.us/reader036/viewer/2022062309/56649ec85503460f94bd4be6/html5/thumbnails/17.jpg)
17
Autoloading To use it, just add the following line to your code's
bootstrap process:
require ‘vendor/autoload.php’;
![Page 18: Composer packages Installing and Using Composer, Packagist, Packaging your code Mario Peshev Technical Trainer Software University .](https://reader036.fdocuments.us/reader036/viewer/2022062309/56649ec85503460f94bd4be6/html5/thumbnails/18.jpg)
18
Adding a library
To add a library to your project, create a file named composer.json with content that resembles this example:
You must run composer to have your dependencies installed:
$ php composer.phar install
{ "require": {
"illuminate/foundation": "1.0.*“}, "minimum-stability": "dev“
}
![Page 19: Composer packages Installing and Using Composer, Packagist, Packaging your code Mario Peshev Technical Trainer Software University .](https://reader036.fdocuments.us/reader036/viewer/2022062309/56649ec85503460f94bd4be6/html5/thumbnails/19.jpg)
Using ComposerLive Demo
![Page 20: Composer packages Installing and Using Composer, Packagist, Packaging your code Mario Peshev Technical Trainer Software University .](https://reader036.fdocuments.us/reader036/viewer/2022062309/56649ec85503460f94bd4be6/html5/thumbnails/20.jpg)
Packaging Your Own Code
![Page 21: Composer packages Installing and Using Composer, Packagist, Packaging your code Mario Peshev Technical Trainer Software University .](https://reader036.fdocuments.us/reader036/viewer/2022062309/56649ec85503460f94bd4be6/html5/thumbnails/21.jpg)
21
Using custom repositories key:
Packaging Your Own Code
"repositories": [ { "type": "package", "package": { "name": "weaverryan/derp-dangerzone", "version": "dev-master", "source": { "url": "git://github.com/weaverryan/derp-dangerzone.git", "type": "git", "reference": "master" },
![Page 22: Composer packages Installing and Using Composer, Packagist, Packaging your code Mario Peshev Technical Trainer Software University .](https://reader036.fdocuments.us/reader036/viewer/2022062309/56649ec85503460f94bd4be6/html5/thumbnails/22.jpg)
22
Packaging Your Own Code (2)
"autoload": { "psr-0" : { "Weaverryan\\DangerZone" : "src" } } } }],
![Page 23: Composer packages Installing and Using Composer, Packagist, Packaging your code Mario Peshev Technical Trainer Software University .](https://reader036.fdocuments.us/reader036/viewer/2022062309/56649ec85503460f94bd4be6/html5/thumbnails/23.jpg)
23
You can later require it
Packaging Your Own Code (3)
"require": { "weaverryan/derp-dangerzone": "dev-master"},
![Page 24: Composer packages Installing and Using Composer, Packagist, Packaging your code Mario Peshev Technical Trainer Software University .](https://reader036.fdocuments.us/reader036/viewer/2022062309/56649ec85503460f94bd4be6/html5/thumbnails/24.jpg)
24
You can simplify the packaging by creating a composer.json file in the library itself with a simillar content
Version and Source keys are removed. Composer will look at branches and tags to get information
Packaging Your Own Code (4)
{ "name": "weaverryan/derp-dangerzone", "autoload": { "psr-0" : { "Weaverryan\\DangerZone" : "src" } }}
![Page 25: Composer packages Installing and Using Composer, Packagist, Packaging your code Mario Peshev Technical Trainer Software University .](https://reader036.fdocuments.us/reader036/viewer/2022062309/56649ec85503460f94bd4be6/html5/thumbnails/25.jpg)
25
Update your composer.json to have the following:
Now, instead of a packages key, you have a simpler vcs key, which consumes the repository's composer.json file
Packaging Your Own Code (5)
"repositories": [ { "type": "vcs", "url": "https://github.com/weaverryan/derp-dangerzone" }],
![Page 26: Composer packages Installing and Using Composer, Packagist, Packaging your code Mario Peshev Technical Trainer Software University .](https://reader036.fdocuments.us/reader036/viewer/2022062309/56649ec85503460f94bd4be6/html5/thumbnails/26.jpg)
26
In order to register you package with packagist you have to fill a form in the official website
Once you have registered you library with Packagist and it has been crawled – you can use it by just requiring it
Registering with Packagist
"require": {"weaverryan/derp-dangerzone": "dev-master"
},
![Page 27: Composer packages Installing and Using Composer, Packagist, Packaging your code Mario Peshev Technical Trainer Software University .](https://reader036.fdocuments.us/reader036/viewer/2022062309/56649ec85503460f94bd4be6/html5/thumbnails/27.jpg)
Packaging Your Own CodeLive Demo
![Page 28: Composer packages Installing and Using Composer, Packagist, Packaging your code Mario Peshev Technical Trainer Software University .](https://reader036.fdocuments.us/reader036/viewer/2022062309/56649ec85503460f94bd4be6/html5/thumbnails/28.jpg)
Famous Libraries Examples
![Page 29: Composer packages Installing and Using Composer, Packagist, Packaging your code Mario Peshev Technical Trainer Software University .](https://reader036.fdocuments.us/reader036/viewer/2022062309/56649ec85503460f94bd4be6/html5/thumbnails/29.jpg)
29
Facebook SDK
The Facebook SDK is added to Packagist
Run composer and you will have a file named composer.lock and a directory named vendor
The lock file sets the dependency to one specific revision In the vendor directory you will find the Facebook SDK
{ "require": { "facebook/php-sdk": "dev-master" }}
![Page 30: Composer packages Installing and Using Composer, Packagist, Packaging your code Mario Peshev Technical Trainer Software University .](https://reader036.fdocuments.us/reader036/viewer/2022062309/56649ec85503460f94bd4be6/html5/thumbnails/30.jpg)
30
PHP Unit
The Unit Testing library PHP Unit is also added to Packagist
{ "require": { "phpunit/phpunit": "4.3.*@dev" }}
![Page 31: Composer packages Installing and Using Composer, Packagist, Packaging your code Mario Peshev Technical Trainer Software University .](https://reader036.fdocuments.us/reader036/viewer/2022062309/56649ec85503460f94bd4be6/html5/thumbnails/31.jpg)
31
Laravel Framework
The Famous MVC Framework – Laravel can be obtained from Packagist too
And a thousand more libraries on Packagist…
{ "require": {
"laravel/laravel": "dev-master"} }
![Page 32: Composer packages Installing and Using Composer, Packagist, Packaging your code Mario Peshev Technical Trainer Software University .](https://reader036.fdocuments.us/reader036/viewer/2022062309/56649ec85503460f94bd4be6/html5/thumbnails/32.jpg)
Famous Libraries ExamplesLive Demo
![Page 33: Composer packages Installing and Using Composer, Packagist, Packaging your code Mario Peshev Technical Trainer Software University .](https://reader036.fdocuments.us/reader036/viewer/2022062309/56649ec85503460f94bd4be6/html5/thumbnails/33.jpg)
33
Easy to use – just list your dependencies
in a composer.json file Packagist is the default package repository You can package your own code You can submit your package to Packagist
Summary
![Page 34: Composer packages Installing and Using Composer, Packagist, Packaging your code Mario Peshev Technical Trainer Software University .](https://reader036.fdocuments.us/reader036/viewer/2022062309/56649ec85503460f94bd4be6/html5/thumbnails/34.jpg)
Questions??
??
?
?
??
?
?
https://softuni.bg/trainings/fasttracks/details/1033
PHP & MySQL
![Page 35: Composer packages Installing and Using Composer, Packagist, Packaging your code Mario Peshev Technical Trainer Software University .](https://reader036.fdocuments.us/reader036/viewer/2022062309/56649ec85503460f94bd4be6/html5/thumbnails/35.jpg)
License
This course (slides, examples, demos, videos, homework, etc.)is licensed under the "Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International" license
Attribution: this work may contain portions from "PHP Manual" by The PHP Group under CC-BY license
"PHP and MySQL Web Development" course by Telerik Academy under CC-BY-NC-SA license35
![Page 36: Composer packages Installing and Using Composer, Packagist, Packaging your code Mario Peshev Technical Trainer Software University .](https://reader036.fdocuments.us/reader036/viewer/2022062309/56649ec85503460f94bd4be6/html5/thumbnails/36.jpg)
Free Trainings @ Software University Software University Foundation – softuni.org Software University – High-Quality Education,
Profession and Job for Software Developers softuni.bg
Software University @ Facebook facebook.com/SoftwareUniversity
Software University @ YouTube youtube.com/SoftwareUniversity
Software University Forums – forum.softuni.bg