composer permet de télécharger des paquets et gère les dépendances => on définit les librairies dont on a besoin.
composer se charge de télécharger les paquets et de les mettre à jour.
Sur linux, exécuter la commande : curl -sS https://getcomposer.org/installer | php
tester composer : php composer.phar --help
php composer.phar
(toutes les commandes)
(voir annexe pour plus d’information)
autres commandes :
composer self-update
: mise à jour de composerphp composer.phar install
: utilise le fichier composer.json puis installe les dépendancesphp composer.phar require dépendance/dépendance
: installe une dépendance
installation de façon globale mv composer.phar /usr/local/bin/composer
éditeur markdown : http://www.markdownpad.com
pour plus d’informations sur le markdown http://enacit1.epfl.ch/markdown-pandoc/
Créer un fichier php contenant :
<?php
$mon_texte= "essai du **markdown**";
$mon_texte_html = tranforme_mon_texte_en_html($mon_texte);
echo $mon_texte."<br><hr>";
echo $mon_texte_html;
?>
Sur le Navigateur, sur le site : https://getcomposer.org/
* Browse Packages => https://packagist.org/ rechercher markdown
Prendre le paquet de michelf/php-markdown
* php composer.phar require michelf/php-markdown
=> repérer le nom du paquet, c’est la méthode la plus simple
pour tester
php -S 127.0.0.1:8000 -ddisplay_errors=1 -dzend_extension=xdebug.so -dxdebug.remote_enable=1 -dxdebug.remote_autostart=1 -dxdebug.remote_port=3004
Dans le terminal php composer.phar init
Package name (<vendor>/<name>) [amillet/td9_composer]: s3b/essaicomposer => on peut changer l'espace de nom
Description []:
Author []: alain Millet <amillet.iut90@gmail.com> => obligatoire
Package Type []:
Minimum Stability []:
License []:
Define your dependencies.
Would you like to define your dependencies (require) interactively [yes]? yes
Search for a package []: michelf/php-markdown
Enter the version constraint to require (or leave blank to use the latest version):
Using version ^1.5 for michelf/php-markdown
Search for a package:
Would you like to define your dev dependencies (require-dev) interactively [yes]?no *
Un fichier composer.json est généré :
{
"name": "amillet/td5_composer",
"require": {
"michelf/php-markdown": "^1.5"
},
"authors": [
{
"name": "alain Millet",
"email": "amillet.iut90@gmail.com"
}
]
}
Dans le terminal, exécuter : php composer.phar install
ou php composer.phar update
ls -R vendor
Dans le dossier vendor/michelf/php-markdown
, ouvrir le fichier composer.json , quel est le type de “autoload” (psr-0 ou psr-4) ?
Retour au code
<?php
use \Michelf\Markdown;
$texte="essai du **markdown**";
$my_html = Markdown::defaultTransform($texte);
echo $my_html;
?>
Attention ceci ne fonctionne pas car il manque l’instruction qui inclue le fichier autoload.php (charge dynamiquement les librairies)
<?php
require "vendor/autoload.php";
…
Sur le Navigateur , rechercher « captcha »
https://packagist.org/search/?q=captcha
Celui de gregvar est le plus téléchargé (au moment où je rédige), on peut lire : php composer.phar require gregwar/captcha
, attention « Requires » php: >=5.3.0 et ext-gd: *
Éditer le fichier json de composer et y rajouter "gregwar/captcha": "dev-master"
Dans le terminal : php composer.phar update
Sur le Navigateur :
(lien Homepage sur le pachagiste) https://github.com/Gregwar/Captcha On peut lire sur la documentation le code pour instancier un objet captcha et l’utiliser, à l’aide de la documentation compléter le code ci dessous :
<?php
session_start();
//include ???
//use ???
if(isset($_POST['maPhrase']))
{
if($_POST['maPhrase']==$_SESSION['phrase']) {
echo "*** texte compatible avec image captcha <br>";
}
else {
echo "*** texte non compatible avec image captcha <br>";
}
}
// ??? construire un captcha
$_SESSION['phrase'] = "???";
echo "phrase => ".$_SESSION['phrase'];
?>
<img src="<?php echo "???" ?>" />
<form action="leNomDeVotreFichier.php" method="post">
saisir captcha : <input type="text" name="maPhrase">
</form>
mkdir app app/helper ; touch app/helper/Form.php ; touch testHelper.php
<?php
namespace MonAppli\helper;
class Form {
static function input($name='',$value=''){
return '<input class="maclasseBootstrap" type="text" name="'.$name.' value="'.$value.'"/>';
}
}
si on désire intégrer, ce module dans notre application :
Dans un fichier testHelper.php :
<?php
require "app/helper/Form.php";
use MonAppli\helper\Form;
echo Form::input('age','10');
Exemple : Rajouter dans le fichier composer.json
...
"autoload": {
"psr-4" : {"MonAppli\\" : "app"}
},
...
php composer.phar update
<?php
require "vendor/autoload.php";
use MonAppli\helper\Form; // Cherche le fichier app/helper/Form.php
echo Form::input('age','10');
use
pour pouvoir utiliser une de ces classes ?autre exemple
"files": ["src/Helpers.php"]
: inclure des fichiers"classmap": ["./Datatbase.php"]
: inclure une classe dans le namespace globalePassage de psr-0 à psr-4
Pour un espace de noms Acme\Foo\
ancré avec src/
, utiliser l’espace de nom : Acme\Foo\(toto\)Bar
"autoload": {
"psr-X" : {"Acme\\Foo\\" : "src"}
},
src/Acme/Foo/(toto/)Bar.php
src/(toto/)Bar.php
<?php session_start(); ?>
<!DOCTYPE html>
<html>
<head>
<script src="tinymce/tinymce.min.js"></script>
<script>tinymce.init({selector:'textarea.maClasseSelection'});</script>
</head>
<body>
<a href="exo4_tinymce.php?edition=ok">edition</a>
<form action="exo4_tinymce.php" method="post">
<textarea name="contenu" rows="10" cols="80"
<?php if(isset($_GET['edition']))echo 'class="maClasseSelection"'; ?> >
<?php if(isset($_SESSION['contenu'])) echo $_SESSION['contenu']; ?>
</textarea>
<input type="submit" name="valider">
</form>
<?php if(isset($_POST['contenu'])) {
echo htmlspecialchars($_POST['contenu']);
echo '<hr>'.$_POST['contenu'];
$_SESSION['contenu']=$_POST['contenu'];
}
?>
</body>
</html>
php composer.phar
par composer
dans le terminal. En cas de problème :
composer nécessite php fonctionnel sur le terminal, exemple de test : php --help
3eme méthode => on télécharge le fichier en bas de la page https://getcomposer.org/download/ Sur Mac ?? , ça devrait être comme sur linux
sudo apt-get install php5-gd
, sudo service apache2 restart