Skip to content

Instantly share code, notes, and snippets.

View ahmed-bhs's full-sized avatar
👽

Ahmed EBEN HASSINE 脳の流れ ahmed-bhs

👽
View GitHub Profile
# config/services.yaml
services:
App\MessageHandler\:
resource: '../src/MessageHandler'
tags: [messenger.message_handler]
<?php
namespace App\MessageHandler;
use App\Message\SendNotification;
use Swift_Mailer;
class SendNotificationHandler
{
/**
* @var Swift_Mailer
<?php
namespace App\Controller;
use App\Message\SendNotification;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Messenger\MessageBusInterface;
use Symfony\Component\Routing\Annotation\Route;
class HomeController extends AbstractController
<?php
/**
* Created by PhpStorm.
* User: ahmedbhs
* Date: 29/09/18
* Time: 18:19
*/
namespace App\Message;
version: '2'
services:
php:
build: docker/php
tty: true
restart: on-failure
volumes:
- '.:/symfony'
command: service supervisor start

PRÉSENTATION GÉNÉRALE

Nous présentons aujourd'hui un petit retour d'expérience sur le composent Symfony Messenger. L'objectif derrière ce billet est de comprendre comment:

  1. Mettre en place une architecture de conteneur Docker qui répond à notre besoin.
  2. Fonctionnement de l'ordonnancement avec RabbitMq.
  3. Fonctionnement de Symfony Messenger.
  4. Le couplage de Symfony Messenger et RabbitMQ, SQS, Redis...afin d'envoyer des emails d'une façon asynchrone.

De nombreux de traitement web pourrait être assez lourd qui prennent parfois beaucoup de temps soit à cause d'un trafic intense,soit à cause d'une mauvaise architecture logicielle, soit à cause de la mauvaise gestion de mémoire, y a des gens qui préfèrent augmenter la mémoire ou bien mettre un système de balance loader ...Mais ca résout pas le problème principal.

@ahmed-bhs
ahmed-bhs / a.php
Last active September 8, 2018 11:48
<?php
namespace Acme\Store\Event;
use Symfony\Component\EventDispatcher\Event;
use Acme\Store\Order;
/**
* The order.placed event is dispatched each time an order is created
* in the system.
*/
Pour mieux gérer la gestion des articles pour chaque fournisseur, nous avons pensé à mettre un système d'import d'articles, en se basant sur un système d'ordonnancement qui va nous permettre de gérer le fils des imports successifs et pour tracer tout varaiation de prix.
Le proses à suivre(description ceontextuelle):
0- L'utilisateur demande le formulaire d'imporation.
1- Télecherger le tram: un fichier Xsl bien structuré avec les colonnes nécessaires
2- Remplir le fichier avec les informations nécessaires pour chaque article
3- L'administrateur procède l'upload du fichier.
4- le système valide le format, la contenue, la structuration des colonnes, la contenue des différentes cases
5- au cas où ou fichier n'est pas conforme aux règles de validation de notre système, un message d'erreur s'affiche pour nous indiquer les règles non respectées, au-delà du système nous affiche un formulaire pour modifier le fichier déjà téléchargé par une autre.
6- au cas où le fichier est bien validé, à ce niveau-là, un button
// gcc -Wall ecdsapubkey.c -o ecdsapubkey -lcrypto
#include <stdio.h>
#include <stdlib.h>
#include <openssl/ec.h>
#include <openssl/obj_mac.h>
#include <openssl/bn.h>
int main()
{
EC_KEY *eckey = NULL;
def generate_RSA(bits=2048):
'''
Generate an RSA keypair with an exponent of 65537 in PEM format
param: bits The key length in bits
Return private key and public key
'''
from Crypto.PublicKey import RSA
new_key = RSA.generate(bits, e=65537)
public_key = new_key.publickey().exportKey("PEM")
private_key = new_key.exportKey("PEM")