Astuces DEV

, par _Eric_

Adapter le php.ini de MAMP
max_execution_time = 300     ; Maximum execution time of each script, in seconds
max_input_time = 60        ; Maximum amount of time each script may spend parsing request data
memory_limit = 256M      ; Maximum amount of memory a script may consume (8MB)

; Maximum size of POST data that PHP will accept.
post_max_size = 64M

; Maximum allowed size for uploaded files.
upload_max_filesize = 64M

xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.idekey=default

xdebug.var_display_max_data=2048
xdebug.show_local_vars=1
xdebug.collect_params=4
xdebug.var_display_max_depth=10

Utiliser l’IDE PHPStorm pour accéder à la base de données

Si on utilise MAMP il ne faut pas oublier de décocher l’option « autoriser uniquement un accès local »

Erreur « Project Data Sources : re-sync required, Unsupported format version 2.2 (2.4 expected) » dans PHPStorm 10

Il faut resynchroniser la base de données en lançant la commande « View > Tool Windows > Database > Synchronize (button) ». En fait, dans la fenêtre Database, la base de données en erreur apparait sans contenu.

Contribuer à un projet Github qui ne vous appartient pas

Et bien c’est pas immédiat !
il faut enchainer quelques actions dont il est important de comprendre la signification :

  1. « fork a repository » : dupliquer le dépôt d’un utilisateur Github. Un nouveau dépôt est donc créé dans votre environnement Github uniquement et une icône et un libellé spécifique permet de comprendre son origine (forked) ;
  2. « clone a repository » : installer un dépôt en local sur votre machine. Ce peut être un dépôt « forké » (clone a fork) ou pas. A partir de ce moment les fichiers du dépôt sont modifiables en local sur votre machine comme une copie de travail SVN.
  3. « commit changes » : après avoir fait les modifications en local sur la copie de travail il est temps d’enregistrer ces modifications. Par contre, contrairement à SVN la commande commit va uniquement enregistrer les modifications en local sur votre dépôt de travail. Aucune modification n’est encore synchronisée avec votre fork sur Github.
  4. « sync changes » : permet de synchroniser les commits stockés en local sur votre dépôt distant sur Github qu’il soit « forké » ou pas.
  5. « pull request » : si votre dépôt « forké » sur Github contient les dernières modifications, le dépôt original lui n’est toujours pas modifié. Si vous souhaitez partager vos modifications avec l’auteur du dépôt original il faut proposer vos modifications en utilisant cette commande.

Ajouter des commiteurs svn ou changer leurs droits

Pour changer les droits :
nano svn/smellup.net/conf/authz
On ajoute les droits par exemple avec kent1 = rw par exemple dans [/]

Pour créer des auteurs :
aller dans svn/smellup.net/conf/passwd
utiliser la commande htpasswd -m svn/smellup.net/conf/passwd user

Pour plus d’information http://technique.arscenic.org/servi...

Installation de SVN

Aller chercher le binaire du client SVN sur wandisco. Le package s’installe dans /opt/subversion/. Pour utiliser la commande CLI svn il est nécessaire de rajouter le chemin des binaires dans le PATH. Pour se faire, le plus simple est de modifier ou créer le fichier .profile à la racine de l’utilisateur courant.
Si le fichier n’existe pas on utilise juste le terminal ainsi :

cd ~
echo 'export PATH=/opt/subversion/bin:$PATH' >> .profile

Utiliser la version SVN installée par le binaire WANDISCO dans /opt/subversion

Ne pas oublier de rajouter la ligne suivante dans le fichier .profile à la racine du compte utilisateur :
export PATH=/opt/subversion/bin :$PATH

Installer l’outil de vérification PSR du code PHP, php-cs-fixer

Tout d’abord il faut récupérer l’archive PHP sur le site de l’auteur via curl :

$ curl -L http://cs.sensiolabs.org/download/php-cs-fixer-v2.phar -o php-cs-fixer

Ensuite, il faut rendre le fichier exécutable et le transférer dans un dossier un peu standard. Pour éviter de disperser tous ces outils optionnels je les regroupe dans /opt (comme subversion) :

$ sudo chmod a+x php-cs-fixer
$ sudo mv php-cs-fixer /opt/bin/php-cs-fixer

Enfin, il faut modifier le .profile en ajoutant le dossier /opt/bin dans le PATh si ce n’est pas déjà le cas.

Pour effectuer une mise à jour, il suffit de lancer la commande suivante :

$ sudo php-cs-fixer self-update

Installer Composer

Deux solutions possibles. La plus simple est de récupérer le .phar, composer.phar, sur la page dédiée, de le transférer dans un dossier un peu standard et de le rendre exécutable. Pour éviter de disperser tous ces outils optionnels je les regroupe dans /opt (comme subversion) :

$ sudo mv composer.phar /opt/bin/composer
$ sudo chmod +x composer

Une autre solution est de lancer au terminal chacune des commandes suivantes :

$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
$ php -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
$ sudo php composer-setup.php --install-dir=/opt/bin --filename=composer
$ php -r "unlink('composer-setup.php');"

Installer Node.js

Il suffit de se rendre sur la page des téléchargements https://nodejs.org/en/download/ et de télécharger l’installeur MacOS soit de la version LTS soit de la version courante. Node.js et npm seront alors tous deux installés dans /usr/local/bin (/usr/local/bin/node et /usr/local/bin/npm).

Installer le compilateur lessc

Une fois que Node.js est installé il est possible d’invoquer npm. Pour installer lessc il suffit alors de lancer au terminal la commande suivante :

$ sudo npm install less -g

Installer le compilateur dart-sass

L’implémentation dart-sass est aujourd’hui utilisée de façon canonique par SASS à la place de Ruby. On va donc installer cette nouvelle implémentation.
On télécharge l’archive sur la page Github https://github.com/sass/dart-sass/r... et on la décompresse. Le répertoire dart-sass/ obtenu est copié dans /opt avec mes autres applications externes.
Enfin, il faut modifier le .profile en ajoutant le dossier /opt/dart-sass dans le PATh.

Installer spip-cli

La documentation de SPIP-Contrib est presque bonne à ceci prêt que pour installer dans /opt il faut prendre quelques précautions. La procédure qui a fonctionné est la suivante :

$ cd /opt
$ sudo mkdir spip-cli
$ sudo chmod 777 spip-cli
$ cd spip-cli
$ git clone git@git.spip.net:spip-contrib-outils/spip-cli.git .
$ composer install

Et pour utiliser la commande spip simplement :

$ cd /opt/spip-cli/bin
$ ln -s $(pwd)/spip /opt/bin

Passage d’un plugin sans organisation en trunk/branches

On suppose que l’on a une réplique du dossier _plugins_ de la zone et qu’on s’y positionne. Le plugin se nomme monplugin :

svn mv monplugin monplugin_old
svn mkdir monplugin
svn mkdir monplugin/branches
svn cp monplugin_old monplugin/branches/v1
svn mv monplugin_old monplugin/trunk
svn commit -m "Passage trunk/branches de monplugin" monplugin

Trouver dans une arborescence de fichiers ceux qui respectent un pattern
find . -name "mon_pattern.ext"

Localiser sa clé ssh publique ?

Elle est ici : ~/.ssh/id_rsa.pub

Transférer une clé RSA d’un ordinateur à un autre

Copier le le répertoire ~/.ssh/ à la racine du compte utilisateur du nouvel ordinateur. Ensuite, générer le fichier qui permet d’autoriser la clé publique comme clé d’authentification de l’utilisateur en lançant à partir du répertoire ~/.ssh/ la commande :

cat id_rsa.pub >> authorized_keys

Ajouter des alias pour les commandes de mySQL ?
alias mysqldump=/Applications/MAMP/Library/bin/mysqldump
alias mysql=/Applications/MAMP/Library/bin/mysql

Charger un dump à partir de la commande MySQL
mysql -p -u nom_utilisateur nom_de_la_base < dump.sql

Sauvegarder une base de données à partir de la commande MySQL
mysqldump -u root -p --opt nom_de_la_base > dump.sql

Autoriser les valeurs ’0000-00-00 00:00:00’ dans les colonnes de type DATETIME

Depuis MySQL 5.6 ou 5.7 la variable sql_mode est souvent initialisée avec NO_ZERO_DATE activée. Cette option empêche l’utilisation des valeurs ’0000-00-00 00:00:00’ pour un champ datetime ce que SPIP fait en standard. Il faut donc supprimer cette option sur les SPIP actuels (3.2 et antérieurs).
La variable sql_mode est accessible dans phpmyAdmin. Il suffit de copier la valeur et de la recopier dans le my.cnf dans la rubrique [mysqld] en supprimant le NO_ZERO_DATE ainsi :

[mysqld]
sql_mode=liste des modes séparés par une virgule

Voir tout les logs de commits pour un répo Git transféré avec mergehistory

Un fois le git clone classique effectué, il faut se rendre dans le dossier racine du repo local et invoquer la commande suivante :

$ git config --local --add remote.origin.fetch "+refs/replace/*:refs/replace/*"