php

Utilisation d’une google cloud function avec authorisation en php

Petit tutoriel qui sors un peu de mes sujets habituels mais qui reste dans le cadre du développement php.
Nous allons voir comment appeler une google cloud fonction, qui nécessite une authentification.

La difficulté pour moi a vraiment été l’authentification et c’est un sujet qui m’a fait perdre un temps fou car la documentation de Google n’était absolument pas
claire sur le sujet.
L’authentification est réalisée via un fichier json reprenant les informations d’un compte de service. ( Cf. exemple ci-dessous )

Comme vous pouvez le juger sur la page suivante :  https://cloud.google.com/functions/docs/securing/authenticating 

Des exemples sont donnés en NodeJs, Go , Python et Java, mais en Php nous sommes invités à utiliser des bibliothèques tiers pour générer des jetons d’authentification, sans explications détaillées.

Voici un exemple de contenu du fichier d’authentification json

{
  "type": "service_account",
  "project_id": "PROJECT-ID",
  "private_key_id": "PRIVATE-KEY-ID",
  "private_key": "PRIVATE-KEY",
  "client_email": "[email protected]",
  "client_id": "CLIENT-ID",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://oauth2.googleapis.com/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/CUSTOMER-URL"
}

Utilisation d’une google cloud function avec authorisation en php Lire la suite »

Publier des releases github via un script

Pour une fois un article qui n’est pas lié directement à une technologie en particulier , mais à la plateforme de sources github.
J’ai plusieurs modules qui sont disponibles sur cette plateforme et pour lequel un clone du dépôt ne permets pas d’obtenir un module fonctionnel.

Pour  cette raison il est nécessaire de créer des « releases » qui sont disponibles sur une page spécifique du dépot ( ex:  https://github.com/nenes25/eicaptcha/releases ) et sur lequel on peut mettre à disposition une archive ( ou tout autre fichier ) associé à la release à télécharger :

Ei captcha releases

Il est possible de faire cela manuellement directement depuis l’interface github, mais par principe manuellement c’est plus lent et plus souvent source d’erreurs qu’un script automatique.
Nous allons donc voir comment scripter tout ça en utilisant l’api v3 de github et curl.

Sachant que dans mon cas j’ai les prérequis suivants :

Je pense qu’il est possible de faire l’ensemble de la procédure ci-dessous via un script bash, mais pour moi c’était plus facile de le faire en php.…

Publier des releases github via un script Lire la suite »

Alternative à phpMyAdmin : Adminer

Un petit article pour présenter un outil qui m’a fait gagner pas mal de temps récemment : Adminer
Cet outil, tout comme PhpMyAdmin permets de gérer les bases de données de votre hébergement via une interface web.

En général, phpmyadmin est installé directement par l’hébergeur et c’est l’outil utilisé par défaut pour gérer les bases de données.
Cependant il peut arriver que des hébergeurs ne le proposent pas.
Dans ce cas l’utilisation d’Adminer est la solution la plus simple et la plus rapide.

Comment ça marche ? :

  • Télécharger le fichier adminer.php depuis le site https://www.adminer.org/
  • Envoyer le via ftp n’importe ou sur votre hébergement.
  • Accéder au fichier depuis un navigateur web

Adminer

Et oui rien de plus à faire 🙂

Note :
Pour plus de sécurité renommez ce fichier en autre chose que adminer.php 😉…

Alternative à phpMyAdmin : Adminer Lire la suite »

Magento : exécuter un modèle via le shell ( php CLI )

Voici un script qui vous permettra d’exécuter n’importe quel modèle de Magento via le shell ( PHP CLI )
Celui-ci est à placer dans un fichier « model.php » le dossier « shell » de magento.

Si vous souhaitez par exemple visualiser les données d’un produit vous pouvez saisir la commande suivante

php -f model.php -- -model catalog/product -action load -value 254

Ou également pour envoyer les emails en attente

php -f model.php -- -model core/email_queue -action send

Dans mon cas je l’utilise pour l’éxécution de modèles personnalisés

<?php
 
require_once 'abstract.php';
 
class Hhennes_Shell_Model extends Mage_Shell_Abstract {
       
    public function __construct() {
        parent::__construct();      
    }
    
    /**
     * Execution du script
     */
    public function run() {
        
        try {
                      
            if  ( $this->getArg('model')){
                
                //Gestion de la méthode à tester, par défaut load
                if ( $this->getArg('method'))
                    $method = $this->getArg('method');
                else
                    $method = 'load';
                   
                //Exécution du test
                $model = Mage::getModel($this->getArg('model'))->$method($this->getArg('value'));
                
                //Affichage des données
                Zend_debug::dump($model);
            }
                 
        } catch (Exception $exc) {
            echo $exc->getMessage();
        }
            
    }
    
    
        public function usageHelp()
    {
        return <<<USAGE
Usage:  php -f model.php

Magento : exécuter un modèle via le shell ( php CLI ) Lire la suite »

Ubuntu Server 14.04 « Trusty Tahr » : Installation d’apache, php et mysql ( lamp)

Une fois notre utilisateur principal créé : ( cf. création d’un utilisateur avec des droits d’administration  ) , l’utilisation principale de mon serveur étant du web il est temps d’installer les éléments nécessaires : Apache , Php et Mysql

Avant toute installation n’oubliez pas d’actualiser les dépendances Ubuntu avec la commande

sudo apt-get update

 – Apache

Apache est le serveur http, il se chargera de transmettre les demandes des visiteurs au serveur et d’afficher les pages.

entrez la commande suivante pour installer apache :

sudo apt-get install apache2

Une fois apache installé vous devez pouvoir accéder à votre machine directement depuis son ip et obtenir la page suivante

install-apache-ok

http://votre.ip.serveur/

  – Php

Php est le langage dans lequel seront programmées vos page ( il peut y en avoir d’autres 🙂 )

Entrer la commande suivante

sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt

(l’extension mcrypt pose un problème sur cette version d’ubuntu, voir en fin d’article comment le corriger.)…

Ubuntu Server 14.04 « Trusty Tahr » : Installation d’apache, php et mysql ( lamp) Lire la suite »