Changes

Jump to navigation Jump to search
7,095 bytes added ,  01:27, 8 December 2016
m
typo
== Intro ==
 
Composer is one of many [[Dependency managers]]. Composer makes it easier to distribute PHP code that relies on other code.
== in MediaWiki ==
<ol>
<li> [[mw:Composer]] is used in the MediaWiki engine to manage all core libraries and dependencies since version 1.25 (including composer-local.json)
<source lang="bash">
cd $IP
cp composer.local.json-sample composer.local.json
composer update --no-dev --dry-run
</source>
<li> [[mw:Composer/For extensions]] on using Composer to manage extensions
<li> [[mw:Manual:composer.json best practices]] for how to add Composer support to your extensions (including extension.json and skin.json)
<li> Jeroen DeDauw wrote [https://www.entropywins.wtf/blog/2013/11/24/introduction-to-composer-for-mediawiki-developers/ this blog post in 2014] that is probably still not only relevant, but also contains wisdom not addressed in other places (e.g. Extension developers should specify <code>"type": "mediawiki-extension"</code> in their extension's composer.json so that Composer installs your package into the 'extensions' folder instead of the typical 'vendor' folder that is Composer's default.)
</ol>
 
=== Use git checkouts ===
Say you installed Semantic Mediawiki with <code>composer require</code> and then when you went to your 'extensions' directory you were <i class="fa fa-frown-o"></i> because it wasn't a git checkout. You can rectify that by redoing the command, but with the <code>--prefer-source</code> option. nb. You first have to move the existing directory out of the way: <code>mv SemanticMediaWiki unused/</code> <code>cd ../ composer require --update-no-dev --sort-packages --optimize-autoloader -vvv mediawiki/semantic-media-wiki "~2.4" --prefer-source</code> But, it's still a bit different than you might expect, because Composer leaves you with a detached head owing to the specific version that it checks out (see composer.lock).
<pre>
Dependency resolution completed in 0.002 seconds
- Installing mediawiki/semantic-media-wiki (2.4.3)
Executing command (CWD): git --version
Cloning 6661acdd8c8420a7e07c178aad47590d086c83d6
Executing command (CWD): git clone --no-checkout 'https://github.com/SemanticMediaWiki/SemanticMediaWiki.git' 'extensions/SemanticMediaWiki/' && cd 'extensions/SemanticMediaWiki/' && git remote add composer 'https://github.com/SemanticMediaWiki/SemanticMediaWiki.git' && git fetch composer
Executing command (extensions/SemanticMediaWiki/): git remote set-url --push origin 'git@github.com:SemanticMediaWiki/SemanticMediaWiki.git'
Executing command (extensions/SemanticMediaWiki/): git branch -r
Executing command (extensions/SemanticMediaWiki/): git checkout '2.4.3' --
Executing command (extensions/SemanticMediaWiki/): git reset --hard '6661acdd8c8420a7e07c178aad47590d086c83d6' --
 
REASON: Required by the root package: Install command rule (install mediawiki/semantic-media-wiki 2.4.3|install mediawiki/semantic-media-wiki 2.4.0|install mediawiki/semantic-media-wiki 2.4.1|install mediawiki/semantic-media-wiki 2.4.2|install mediawiki/semantic-media-wiki 2.4.3)
 
$ git branch
* (detached from 2.4.3)
master
$ git status
HEAD detached at 2.4.3
nothing to commit, working directory clean
</pre>
 
== Installation ==
Installing it on your own host would look something like this
drush --version
</source>
 
 
== Commands ==
<pre>
______
/ ____/___ ____ ___ ____ ____ ________ _____
/ / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
/_/
</pre>
Composer version 1.2.2 2016-11-03 17:43:15
 
Usage:
command [options] [arguments]
 
Options:
-h, --help Display this help message
-q, --quiet Do not output any message
-V, --version Display this application version
--ansi Force ANSI output
--no-ansi Disable ANSI output
-n, --no-interaction Do not ask any interactive question
--profile Display timing and memory usage information
--no-plugins Whether to disable plugins.
-d, --working-dir=WORKING-DIR If specified, use the given directory as working directory.
-v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
 
Available commands:
about Short information about Composer
archive Create an archive of this composer package
browse Opens the package's repository URL or homepage in your browser.
clear-cache Clears composer's internal package cache.
clearcache Clears composer's internal package cache.
config Set config options
create-project Create new project from a package into given directory.
depends Shows which packages cause the given package to be installed
diagnose Diagnoses the system to identify common errors.
dump-autoload Dumps the autoloader
dumpautoload Dumps the autoloader
exec Execute a vendored binary/script
global Allows running commands in the global composer dir ($COMPOSER_HOME).
help Displays help for a command
home Opens the package's repository URL or homepage in your browser.
info Show information about packages
init Creates a basic composer.json file in current directory.
install Installs the project dependencies from the composer.lock file if present, or falls back on the composer.json.
licenses Show information about licenses of dependencies
lint Run the lint script as defined in composer.json.
list Lists commands
outdated Shows a list of installed packages that have updates available, including their latest version.
phpcs Run the phpcs script as defined in composer.json.
prohibits Shows which packages prevent the given package from being installed
remove Removes a package from the require or require-dev
require Adds required packages to your composer.json and installs them
run-script Run the scripts defined in composer.json.
search Search for packages
self-update Updates composer.phar to the latest version.
selfupdate Updates composer.phar to the latest version.
show Show information about packages
status Show a list of locally modified packages
suggests Show package suggestions
test Run the test script as defined in composer.json.
update Updates your dependencies to the latest version according to composer.json, and updates the composer.lock file.
validate Validates a composer.json and composer.lock
why Shows which packages cause the given package to be installed
why-not Shows which packages prevent the given package from being installed
 
 
== More ==
 
To use [https://getcomposer.org/ Composer] in your PHP project, see this [http://daylerees.com/composer-primer primer], plus Matthieu Moquet's "''[https://moquet.net/blog/5-features-about-composer-php/ 5 Features About Composer]''", and also this handy-dandy [http://composer.json.jolicode.com/ cheatsheet] (with mouseovers!)
[[Category:Development]]
[[Category:Tools]]
[[Category:PHP]]
4,558

edits

Navigation menu