Mettre en ligne une application AngularJS

0

angularjs

J’utilise Yeoman pour gérer mon projet. Yeoman utilise le task runner Grunt.

yeoman-logo

Pour déployer votre application, vous devez lancer la commande : grunt build

Cette commande va générer les fichiers nécessaires au fonctionnement de votre application et va minimiser l’ensemble de vos fichiers JS.

L’ensemble de vos sources se trouveront dans le dossier dist/

Il n’y a plus qu’à faire pointer votre nom de domaine vers ce dossier dist/

Share Button

Insérer un template avec get_template_part()

0

wordpressAvec WordPress, il est possible de charger un bout de template sur n’importe quel page du site avec la fonction get_template_part(). Cette fonction WordPress est l’équivalent d’un include en PHP. Sachez également que la fonction incude existe aussi dans WordPress. Mais son temps de chargement est plus long que la fonction get_template_part(). Dans le codex, la fonction est simple :

get_template_part( string $slug, string $name = null )

Par exemple, on va pouvoir charger une page content.php en faisant : get_template_part( ‘content’ )

Mais on peut également charger une page content-home.php en faisant : get_template_part( ‘content’, ‘home’ )

Content comme son nom l’indique affiche le contenu des pages, il peut parfois être divisé en de multiples parties content-page, content-home,content-audio, content-gallery etc qui seront affichées en fonction de la page demandée par content.php (Il n’ aura donc que des appels de fonctions dans le fichier).

Cela permets d’alléger le fichier content.php qui est un des fichiers les plus souvent sollicités par wordpress ce qui accélère d’autant l’affichage du site.

Néanmoins la création de thème étant libre, il se peut qu’un créateur s’en passe et utilise directement des appels vers les parties de content qu’il veut utilisé, c’est généralement le cas dans les modèles de pages.

Généralement le content.php contient le code contenant les articles (hors contenu) donc a a chaque fois que l’on affiche un article que ce soit sur la page d’accueil,dans les catégories, dans la page single ou dans les archives .

Par exemple dans une page index de thème, il y a généralement la boucle qui recherche les articles ( if have_post) suivi de la boucle d’affichage de ces articles (while have_post) via un appel vers le fichier content (get_template_part( ‘content’, get_post_format ) et on indique la partie nécessaire si il contient plusieurs fonctions d’affichage ( ici le format post est demandé) qui elle-même peut appeler d’autres parties de content (ou des sous-fichiers) si nécessaire.

Share Button

Intégration design Prestashop

0

Share Button

Compréhension, installation et gestion des hooks

0

Share Button

Mise en place d’un thême vierge

0

Share Button

Installation et configuration Prestashop

0

Share Button

Sass et Compass

0

PREPROCESSEURS CSS

 

SASS et LESS sont tous les 2 des préprocesseurs CSS

Objectif : amélioration du code CSS plus rapide

 

 

SASS (preprocesseur)

 

SASS (syntically awesome style sheets) possede 2 syntaxe :

La syntaxe indentée proche du haml (pas pratique)

Et la syntaxe SCSS proche du CSS

http://sass-lang.com/install

 

http://www.grafikart.fr/formations/sass-compass/install-geek

pour installer sass (pas besoin de fichier.exe), il faut installer d abord rubyinstaller.org

sur cmd : ruby –help : toutes les commandes et options

et maintenant pour installer sass (pas besoin de fichier.exe),:

sur cmd : gem ruby install

 

 

SASS peut être amélioré par compass (framework css)

http://compass-style.org/

 

LESS (preprocesseur)

LESS permet de faire des mixins CSS

http://lesscss.org/

 

less peut etre amélioré par compass aussi

 

après pour bien gérer l’ensemble des feuilles css, ya les recommandations SMACSS

https://smacss.com/

 

Installation de SASS :

Déjà pour installer SASS, il faut installer RubyInstaller

Et ensuite, je peux installer SASS avec le terminal en tapant une commande

 

Installation de sass

$ Gem install sass

$ Sass –help

 

Installation de compass

$ Gem install compass

$ Compass –help

 

Pour compiler sass

$ Sass –watch sass :css (compiler les fichiers du dossier sass dans le dossier css)

Le fichier config.rgb : remplacer stylesheets par css

 

Pour compiler compass

$ Compass init (créer tous les fichiers d initialisation)

$ Compass watch (faire cette commande et tout de suis après inclure : @import « compass » ; et @include box-shadow

Share Button

Aide mémoire symfony2

0

Création d’un bundle

# exemple d'un bundle
php app/console generate:bundle --namespace=Acme/TestBundle
 
# puis répondre aux questions

Création d’un serveur en local

# installer le bundle
composer require symfony/web-server-bundle --dev
# lancer le serveur
php bin/console server:start

Création de la bdd symfony

# créer la base de données une seule fois seulement
php app/console doctrine:database:create

Création de la bdd symfony

# créer la base de données une seule fois seulement
php app/console doctrine:database:create

Création d’une entity

# générer une entité
php app/console doctrine:generate:entity
# puis répondre aux questions

# générer toutes les getters et setters d'une entité
php app/console doctrine:generate:entities Kitpages\UserGeneratedBundle

Copier les fichiers statiques des bundles dans web/

php app/console assets:install web
# utiliser --symlink pour utiliser des liens
# symboliques à la place de copies

Aide mémoire doctrine

# générer les getters / setter d'une entité
php app/console doctrine:generate:entities Kitpages\CmsBundle
 
# récupérer le code SQL pour la création d'un schéma
php app/console doctrine:schema:create --dump-sql
 
# idem pour la mise à jour d'un schéma
php app/console doctrine:schema:update --force

#pour la mise à jour d'un schéma quand on a plusieurs entity manager
php app/console doctrine:schema:update --dump-sql --em=name_entity_manager

#affiche la requête
$queryOrderList = $em->createQuery('SELECT o FROM KitpagesShopBundle:Order o');
echo $queryOrderList->getSQL();

# générer les vues et controleurs CRUD d'une entité
php app/console generate:doctrine:crud

# afficher le contenu d'une entité doctrine, sans les données du proxy
\Doctrine\Common\Util\Debug::dump($myEntity)
# une fois que l'on a créer les fixtures à la main, il faut loader les fixtures dans doctrine
php app/console doctrine:fixtures:load
# générer le formulaire d'une entité
php app/console doctrine:generate:form TutoAnimauxBundle:Animal

Composer

Mettre à jour Composer lui-même
php composer.phar self-update
Installer Composer dans le dossier www en vue d'une installation de Symfony avec Composer
C:\wamp\www> php -r "eval('?>'.file_get_contents('http://getcomposer.org/installer'));"

Installer Symfony avec Composer
C:\wamp\www> composer create-project symfony/framework-standard-edition my_project_name
Composer sert à installer de nouvelles dépendances (bundles). Le fichier composer.json contient la bibliothèque de toutes les dépendances (bundles) installées
Pour rajouter une dépendance, il faut la rajouter dans require du fichier composer.json et la rajouter aussi dans le fichier AppKernel
 
# installer ou mettre à jour toutes les dépendances(attention on ne met pas de app/console avec composer)
$ php composer.phar update
ou
$ composer update
# voir les commandes de composer (attention on ne met pas de app/console avec composer)
$ php composer.phar --help ou -h
ou
$ composer --help ou -h
# voir la version de composer (attention on ne met pas de app/console avec composer)
php composer.phar --version ou -v
ou
$composer --version ou -v

# Mettre à jour composer (attention on ne met pas de app/console avec composer)
$ php composer.phar self-update
ou
$ composer self-update

# Télécharger un seul bundle (attention on ne met pas de app/console avec composer)
$ php composer.phar update friendsofsymfony/rest-bundle (en ayant au préalable inscrit le bundle et la version souhaitée dans le composer.json)
ou
$ composer require friendsofsymfony/rest-bundle(téléchargement automatique du bundle)

Debug

# voir toutes les routes
php app/console router:debug
 
# effacer le cache
php app/console cache:clear

# effacer le cache en mode production
php app/console cache:clear --env=prod
# voir la liste des services
php app/console debug:container

# lister tous les services implémentant un certain tag pour les interfaces (et non pas nomduservice)
php app/console debug:container --tag=twig.extension

# avoir les informations sur un service en particulier
php app/console debug:container serializer

Sécurité

<?php
// savoir si un mec a un role
if($this->get('security.context')->isGranted('ROLE_ADMIN') ) {}

// savoir si un mec est authentifié (un mec peut être authentifié de façon anonyme) :
$this->get('security.context')->getToken()->isAuthenticated();

// Dans un controller, récupérer le user courant :
$this->get('security.context')->getToken()->getUser();

// récupérer le login du user courant
$this->get('security.context')->getToken()->getUsername();

Depuis un contrôleur

<?php
// récupérer l'objet request
$request = $this->getRequest();
 
// Ajax request?
$request->isXmlHttpRequest();
 
// quel est le langage préféré ?
$request->getPreferredLanguage(array('en', 'fr'));
 
// get a $_GET parameter
$request->query->get('page'); 
 
// get a $_POST parameter
$request->request->get('page');
 
// get a cookie parameter
$request->cookies->get('page');
 
// get REQUEST_URI
$request->getPathInfo()

// récupérer l'entity manager de Doctrine
$em = $this->getDoctrine()->getEntityManager();
 
// récupérer un paramètre de l'application
// défini par exemple dans parameters.ini
$param = $this->container->getParameter('my_parameter');

// récupérer la locale courante :
$this->get('session')->getLocale();
 
// récupérer un service
$service = $this->get("myService");
 
// récupérer le "baseUrl (+ ou - complet)" de l'appli
$this->getRequest()->getBasePath();
$this->getRequest()->getBaseUrl();
 
// voir tous les paramètres enregistrés :
var_dump($this->container->parameters);

?>

flash message

Ce sont les messages qu’on renvoie à l’utilisateur après un traitement (de formulaire par exemple).

La syntaxe a changé entre Symfony 2.1 et Symfony 2.2. Il faut maintenant passer par un flashBag. je vous laisse regarder les différences ci-dessous.

////
// add a flash message with SF 2.3
////
$this->get('session')->getFlashBag()->add(
    'notice',
    "message content"
);

/*
{% if app.session.hasFlash('notice') %}
<div class="flash-message flash-notice" style="display:none;">
    {{ app.session.flash('notice') |nl2br }}
    <div class="close-button">X</div>
</div>
{% endif %}
*/


////
// add a flash message with SF <= 2.1
////
$this->get('session')->setFlash(
    'notice',
    "Contenu du message"
);

// et dans twig on aura un code du genre :
/*
{% if app.session.hasFlash('notice') %}
    <div class="flash-notice">
        {{ app.session.flash('notice') }}
    </div>
{% endif %}
*/

Retour d’un contrôleur

Un controlleur peut renvoyer pas mal de choses différentes :

  • la sortie d’un template twig
  • une redirection 302 vers une autre page
  • un transfert (sans nouvelle requête) vers un autre controlleur (forward)
<?php
// renvoie un template twig
return $this->render(
    'KitpagesShopBundle:Cart:display',
    array(
        'cart' => $displayCart,
        'cartModel' => $cart,
        'cartManagerModel' => $cartManager
    )
);

// fait une redirection 302 vers une page
return $this->redirect("/toto/titi");

// fait une redirection vers une page définie par le routeur
return $this->redirect(
    $this->generateUrl("cart", array("key"=>$val))
);

// renvoie un texte simple vers le navigateur
// penser au use Symfony\Component\HttpFoundation\Response;
return new Response('My text response');

// transfère à un autre controlleur (sans changer de requête)
return $this->forward('AcmeHelloBundle:Hello:fancy', array(
    'name'  => $name,
    'color' => 'green'
));

// forward en transférant à la sous-requête tous les éléments
// de la requête principale
$attr = $this->getRequest()->attributes;
$attr->add(array("newAttribute" => "value"));
return $this->forward(
    'KitpagesTotoBundle:Controller:action',
    $attr->all(),
    $this->getRequest()->query->all()
);

Les Services Symfony

Une liste de service qu’on utilise souvent avec la classe par défaut associée.

  • translator : Symfony\Bundle\FrameworkBundle\Translation\Translator
  • router : Symfony\Component\Routing\RouterInterface
  • doctrine : Symfony\Bundle\DoctrineBundle\Registry
  • event_dispatcher : Symfony\Component\EventDispatcher\EventDispatcherInterface
  • templating : Symfony\Component\Templating\EngineInterface
  • logger : Symfony\Component\HttpKernel\Log\LoggerInterface
  • mailer : Swift_Mailer
  • security.acl.provider : Symfony\Component\Security\Acl\Model\AclProviderInterface
  • service_container : Symfony\Component\DependencyInjection\ContainerInterface
  • security.context : Symfony\Component\Security\Core\SecurityContextInterface

Installer les assets css js et images

Une fois les modifications apportés dans le dossier public il faut copier ces fichiers dans le dossier web pour que ces modfications s’affichent à l’écran:

$ php app/console assets :install

Comme c’est une tâche répétitive, Symfony met à disposition les liens symboliques du dossier web simplement en ouvrant la commande en mode administrateur:

$ php app/console assets:install web –symlink

Cela aura pour effet de créer des liens symboliques automatiquement et vous n’aurez plus à installer les assets à chaque modification

pour compiler un fichier main.css

$ php app/console assetic:dump

Share Button
Go to Top