Choisir la version de PHP pour un projet Symfony

Bonjour, alors mon problème du jour est que quand je veux déployer sur un hébergeur mutualisé, je n’ai parfois pas trop le choix de la version de PHP qui va tourner. Par exemple sur mon hébergement de base chez OVH, bah c’est la V. 7.3.18 MAX, or mon site symfony développé sur ma machine avec la dernière version d’Ubuntu qui est sur la version 7.4 de PHP, va se baser sur celle-ci. Je vais donc avoir un joli message comme quoi mon composer.lock ne correspond à la version du serveur.

Pour corriger ça, il suffit d’indiquer dans notre fichier composer.json la version de PHP que nous voulons utiliser.

Au niveau de la clé  » config  » nous allons ajouter la version à utiliser:

« config »: { « platform »: { « php »: « 7.3.18 » },

Une fois fait, il ne reste qu’a supprimer le dossier vendor et de reancer la commande:

 composer install

Gérer les relations ManyToMany dans Symfony

Dans Symfony, ce qui est génial c’est les commandes de génération de Code. Entre le Make:Entity et le Make Crud, on gagne un temps fou, mais il reste une certaine petite chose qui peuvent vous faire perdre du temps si vous débutez.

Et l’une d’elles qui m’as bien pris la tête alors que c’est tout bête, c’est la gestion des relations ManyToMany dans les formulaires.

Pour rappel, un ManyToMany, c’est une relation qui peut avoir plusieurs références à des entités. Comme des tags par exemple, je peux avoir un tag techno qui peut être lié à plusieurs articles, mais un article peut avoir plusieurs tags.

Dans le formBuilder, il faut ajouter sur notre champs M2M, le type de champs, donc EntityType , et la classe cible.

 ->add('category', EntityType::class, [
                'class' => Category::class               
            ])

Et surtout bien penser à ajouter une fonction __toString sur votre entity, sinon Symfony ne saura pas quoi afficher.


    public function __toString()
    {
        return $this->name;
    }
    

Faire un effet post-it sur une DIV

HTML

Survole moi maybe …

CSS
.effect {
position: relative;
background-color: #fae9a4;
width: 300px;
height: 350px
}

.effect:before,
.effect:after {
z-index: -1;
position: absolute;
content: «  »;
bottom: 25px;
left: 10px;
width: 50%;
top: 80%;
max-width: 300px;
background: #777;
box-shadow: 0 35px 20px #777;
transform: rotate(-8deg);
}

.effect:after {
transform: rotate(8deg);
right: 10px;
left: auto;
}

Installation de MySQL sur Ubuntu

Tout d'abord bien lancer la commande

apt-get update

pour récuperer les dernières mise à jour.

Après un traitement plus ou moins long, normalement il vous demande de creer un utilisateur pour la gestion des base de données. Si ce n'est pas le cas, comme pour moi, il suffit de taper :

sudo mysql_secure_installation

On va vous demander le mot de passe admin, si l'ont doit supprimer les acces anonyme.

Générer les classes et les accesseurs avec Symfony depuis une BDD

Il est possible de générer toutes les classes et les entités depuis une base de données existante.

Cette commande génére l'entité sous forme de classe PHP:

php bin/console doctrine:mapping:import 'App\Entity' annotation --path=src/Entity

Si vous préferez le yml ou le xml à la place des annotations, il suffit de replacer annotation dans la commande.

 

Pour générer les accesseurs, il suffit de taper:

php bin/console make:entity --regenerate App

Il reste quelque petit trucs à ajouter à la main, mais ça supprime déjà pas mal de travail répétitif et sans intérêt.

Commande Ionic

Bon je commence à tester Ionic pour faire des applications mobiles hybrides (qui fonctionne sur toute les plateformes et qui sont codée avec des technos web). Je ferais peut être un tuto une fois que je me serait enfin dépatouiller avec l'implémentation de SQLite.

Démarrer un nouveau projet Ionic:

ionic start [nomDuProjet] [template]

template peut etre tabs, blank, etc.

Ajouter un component:

ionic g [component]

component => page, tabs, etc.

Lancer le serveur de développement:

ionic serve --lab

/!\ attention ne marche pas pour les fonctionnalités natives(accelerometre, stockage, etc.)

 

Ajouter la couche SQLITE en complement de PouchDB:

ionic cordova plugin add cordova-plugin-sqlite-2
npm install pouchdb --save
npm install pouchdb-adapter-cordova-sqlite --save

 

 

 

source:

https://www.techiediaries.com/ionic-sqlite-pouchdb/