Quand on utilise une image comme celle là, il ne faut pas faire n'importe quoi comme installer des packages php5-extensions, ce n'est pas du tout prévu... Il faut suivre la doc et utiliser les outils mis à dispo sinon on se retrouve un Dockerfile qui n'a aucun sens...
Dans ma todo : migrer ces "choses" pour utiliser une image debian de base
En gros pour dockeriser une app symfony pre 3.2 (ET 2.7 minimum) :
sed -i "s/PLACEHOLDER/PassEnv $(env|grep -Po 'SYMFONY__[^=]+'| paste -s -d' ')/" test.file
A partir de symfony 3.2 c'est beaucoup plus facile car les variables d'environnements sont directement accessibles dans les fichiers de configuration
$message = \Swift_Message::newInstance()
->setSubject('Hello Email')
->setFrom('toto@gmail.com')
->setTo('toto@gmail.com')
->setBody('toto',
'text/html'
)
;
$this->get('mailer')->send($message);
Une lib pour gérer l'envoi de metric depuis php
Sur une debian wheezy, php va "nettoyer" régulièrement le dossier qui contient les fichiers de sessions grâce à un cron dans /etc/cron.d/
Toutes les 30 minutes il va vérifier qu'aucun fichier n'est plus vieux que le gc_maxlifetime (php.ini) qui par défaut est de 24 minutes.
24 minutes !! Ne vous étonnez pas si vous de restez pas connecté à vos applications même en ayant coché la petite case car avec ce comportement par défaut, si votre session n'est pas accédée dans un délai de 24 minutes, elle sera supprimée par le prochain passage du cron..
<?php
$extensions = get_loaded_extensions();
foreach($extensions as $ext) {
echo "$ext --> ";
echo phpversion($ext);
echo "\n";
}
conf ops m6web bien cool!
sysdig
curl
graphite/statsd
collectd/sensu/seyren
ELK(Elasticsearch, Logstash, Kibana)
Elasticsearch :
jmeter/gatling
siege/wrk
tsung
gor
blitz.io, blazemater, neotys(saas)
via skunnyk
Un mini framework php inspiré de bottle (mini framework python). Dans le même esprit que sinatra (mini framework ruby)
via sametmax
Backdoor php, tellement peu de code et discrete :o
via Skunnyk
Les package php5- contiennent en général une extension en .so et le bout de fichier .ini qui permet de l'activer
Les package php- peuvent contenir d'autre chose comme des binaires ou des fichiers php (librairies)
Parfois les dépots débian ne sont pas suffisament à jour alors on peut passer par des gestionnaires alternatifs :
pecl : pour installer des .so
pear : pour installer des libs php
On peut aussi gérer les dépendance au niveau du projet au lieu de les gérer au niveau du système avec par exemple composer
Point de vue différents :)
Ici, lorsqu'on utilise "localhost", la connexion va se faire par une socket et lorsqu'on utilise "127.0.0.1", la connexion se fera par tcp. On pourrait se dire que le comportement est anormal, mais en fait, non :
"The patch won't be added as then "localhost" has two meanings - one time meaning "use the unixdomain socket in the default location" and one time actually "resolve localhost and use TCP" as it is taught in many places that "localhost" in MySQL has the first meaning we keep it there."
La socket est déterminée ici dans le php.ini :
; Default socket name for local MySQL connects. If empty, uses the built-in
; MySQL defaults.
mysql.default_socket =
3 articles à lire :
http://julien-pauli.developpez.com/tutoriels/php/compilation/
http://julien-pauli.developpez.com/tutoriels/php/internals/presentation/
http://julien-pauli.developpez.com/tutoriels/php/internals/bases-creer-extension/
http://tech.covoiturage.fr/author/julien_pauli/
+Bonus :
http://julien-pauli.developpez.com/tutoriels/php/sapis/
https://support.cloud.engineyard.com/entries/26902267-PHP-Performance-I-Everything-You-Need-to-Know-About-OpCode-Caches
à utiliser pour faire les statistiques de dépenses pour une catégorie
via sebsauvage
Pratique
Génère en inline en plus, donc plus condensé
FPM (FastCGI Process Manager) est une implémentation alternative à PHP FastCGI avec quelques fonctionnalités additionnelles particulièrement utiles pour les environnements à haute charge.
Ces fonctionnalités incluent :
Astuce pour avoir des getter/setter dynamique.
Attention, comme le dit idleman, avec ça c'est comme si tous vos attributs étaient publiques.
Différence entre python et php
Et un site pour débuter en python lorsqu'on vient de php :
http://www.inspyration.org/tutoriels/debuter-python-lorsque-lon-vient-de-php
Doc intéressante à lire sur le composant HttpKernel
Une gallerie de photo en php
scandir : affiche les fichiers et dossier contenus dans le dossier passé en paramètre
Editeur en ligne avec coloration syntaxique etc
Code Igniter
Une fonction pour calculer le temps écoulé entre 2 timestamp
code pour générer des pages CRUD en php qui permettent sur une table :
-Create ligne
-Read les lignes
-Update une ligne
-Delete une ligne