Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Linux, docker, PHP, SQL, Symfony #36

Open
archistico opened this issue Nov 11, 2021 · 7 comments
Open

Linux, docker, PHP, SQL, Symfony #36

archistico opened this issue Nov 11, 2021 · 7 comments

Comments

@archistico
Copy link
Contributor

Alors, j'ai essayé de mettre les bases et ce qu'il est le minimum.
Dites-moi quelque chose :)
Ciao
Emilie

LINUX

  • Installation
  • Les commandes de base
  • man
  • echo
  • pwd | cd | mkdir
  • ls
  • les noms des fichers et touch | cat
  • cp | mv
  • rm | rmdir
  • locate | find
  • grep
  • sudo | chmod | chown | useradd | userdel
  • df | du
  • head | tail | diff
  • jobs | kill | top
  • history
  • ping | wget | curl
  • tar | zip
  • vim | nano

DOCKER

  • Installation d'un poste dev avec APACHE, PHP, SQL, SYMFONY

PHP

  • Fonctions magiques
  • Object Oriented Programming
  • Namespaces
  • Interfaces
  • Fonctions anonymes
  • Closures
  • Abstract classes
  • Exception et gestion des erreurs
  • Traits
  • PHP extensions
  • PSR
  • Design pattern

SERVER WEB

  • APACHE
  • NGINX
  • Fonctionnement
  • Configuration

SQL

  • Fonctionnement
  • Create DB
  • Create Table
  • Data types
  • Not Null
  • Unique
  • Primary Key
  • Foreign Key
  • Select | Distinct | Where
  • And & Or
  • Order By
  • Insert | Update | Delete
  • Like
  • Wildcards
  • In | Between
  • Alias
  • Joins
  • Union
  • Fonctions: count | first | last | max | min | sum | now
  • Group By
  • Having

HTTP

  • Client / Server interaction
  • Status codes (2xx, 3xx , ...)
  • HTTP request | response | methods
  • Cookies
  • Caching
  • Content negotiation

SYMFONY

  • Symfony Architecture | Flex
  • Components
  • Bridges
  • Request handling
  • Exception handling
  • Event dispatcher and kernel events
  • Best practices
  • Naming conventions
  • Debug bar

SYMFONY CONSOLE

  • Built-in commands

SYMFONY CONTROLLERS

  • Naming conventions
  • AbstractController
  • Request
  • Response
  • Cookies
  • Session
  • Flash messages
  • HTTP redirects
  • Redirects interne
  • Gestion des pages 404
  • File upload

SYMFONY ROUTING

  • Fonctionnement
  • Configuration (YAML, XML, PHP & annotations)
  • Les valeurs par default
  • Parameters
  • HTTP methods matching
  • Debug des routes

SYMFONY TWIG

  • Concepts
  • Loops | Conditionals
  • Variables | Expressions
  • Functions
  • Operators
  • Template inheritance
  • Global variables
  • Filters | functions
  • URLs generation
  • Translations and pluralization
  • String interpolation
  • Assets management

SYMFONY FORMS

  • Creation
  • Gestion
  • Form types
  • Utilisation de Twig
  • Forms theming
  • CSRF
  • File upload
  • Built-in form types
  • Data transformers
  • Form events
  • Form type extensions
  • Picker JS

SYMFONY DOCTRINE

  • File .env.local
  • Creation de la BDD
  • Entities
  • Migrations
  • ...

SYMFONY INJECTION DE DEPENDENCES

  • Service container
  • Configuration des parameters
  • Services registration
  • Tags
  • Factories
  • Compiler passes
  • Services autowiring

SYMFONY SECURITY

  • Authentication
  • Authorization
  • Configuration
  • Providers
  • Firewalls
  • Users
  • Passwords encoders
  • Roles
  • Access Control Rules
  • Guard authenticators
  • Voters and voting strategies

SYMFONY CACHE

  • Cache types (browser, proxies and reverse-proxies)
  • Expiration | Validation
  • Client side caching | Server side caching

SYMFONY TEST

  • PHPUnit
  • Tests unitaires
  • Tests fonctionnels

SYMFONY MISE EN PRODUCTION

  • Choix du server
  • Deploy avec un shared hosting bas prix (sans SSH)
  • Deploy sur hebergeur avec acces SSH
  • Deployment best practices
  • Ficher .env
  • Configuration Base de données
  • Configuration mailer
@yoanbernabeu
Copy link
Owner

Merci beaucoup pour cette contribution bien complète !

Je suis en train d'ouvrir pleins d'issue pour lister l'ensemble des items a ajouter dans notre Roadmap, ta liste va bien aider !

@archistico
Copy link
Contributor Author

ça me fait plaisir

J'ai oublié bcp de chose:
LINUX -> apt update | apt install | apt remove | dpkg
PHP -> composer | packagist | composer.json
JS -> npm | yarn etc.
CSS -> tout...

@maitrepylos
Copy link
Contributor

Bonjour, il manque le B.a.ba , le HTML :) (strict minimum pour les formulaires )

@guedel
Copy link

guedel commented Nov 15, 2021

Bonjour,
En tant que développeur je me sers très peu des commandes Linux. Certaines sont toutefois indispensables pour installer et configurer un serveur: ls, cd, find, grep, xargs, tail, vi, chown, chmod. Le reste peu s'apprendre plus tard au fur et à mesure. Il faut également connaître les instructions de base des gestionnaires de paquet : pacman, apt, yum pour les plus courants. Le reste c'est plus le rôle de l'administrateur système ou du devops.

Il ne faut pas perdre de vue qu'on peut faire du développement Symfony sous Windows (ce qui est mon cas). Donc connaitre les commandes de base sous Powershell ou Cmd peuvent également être utiles.

Avec la montée en puissance de Docker, il peut être utile de connaître les commandes de base: manipulation des containers et des volumes et docker-compose pour la création des services. Et cela je m'en sert au quotidien.

Pour me faire une remise à niveau sur Symfony, j'ai commencé à suivre le book Symfony réalisé par Fabien Potencier.

La version française est ici: https://symfony.com/doc/current/the-fast-track/fr/index.html

@archistico
Copy link
Contributor Author

archistico commented Nov 15, 2021

Vous avez raison tous les deux. Le HTML on peut pas l'oublier.
Pour les commandes on doit avoir aussi ceux pour Windows. Je les ai mis parce-que moi aussi je développe sur win, mais toujours sur mess serveurs il y a Linux. Parfois en SSH c'est très utile de copier/lire un ficher/déplacer un répertoire/etc.
Ou sur une machine virtuelle/docker pour le dev ou le test aussi j'ai Linux. L'emplacement des fichers de conf (par example /etc/apache/sites-availables) n'est pas evident.
Sur Windows avant j'utilisais WAMP ou easyPHP qui étaient très rapide a mettre en fonction pour le dev PHP/MySql/Apache
Maintenant Docker avec ses commandes de base je le trouve indispensable (j'ai fais un cours en italien de 7 heures sur udemy et quelques tutos sur youtube et les commandes de base je les connais, mais pas plus).
Si quelqun connais docker, il peut s'en occuper directement

@maitrepylos
Copy link
Contributor

Perso dans les cours que je donnent, les machines de mes élèves sont souvent différentes (Win, Mac, Linux), je galérais tellement, pour avoir un environnement hétérogène que j'ai tenté pleins de truc, Docker, Vagrant, Vm ......
Maintenant je fais au plus simple et c'est un petit "php -S localhost:8000" et tout le monde est sur le même pieds d'égalité.
En Windows, l'avenir ne serait pas au WSL2 ?

@yoanbernabeu
Copy link
Owner

Hello à tous,

Tout d'abord merci pour vos échanges et vos contributions !

Pour le moment j'accepte largement les contributions du plus grand nombre sur le projet, et dans un second temps il y aura une grande passe de réorganisations des sections :

  • Choisir un ordre intéressant pour l'apprentissage, progressif et logique
  • Découpage et profondeur des notions abordées
  • Mise en conformité des pages pour garder une forme d'uniformité sur la forme

Sur vos échanges sur les environnements de développements, cela pourrai faire l'objet d'une section à part entière, mais effectivement il faudrait pouvoir aborder et rediriger vers des supports pour Windows, Linux ou Mac.

Une section entièrement dédiée à Docker ne me semble pas superflu en 2021, surtout pour un.e dev backend. C'est de plus en plus un avantage non négligeable pour trouver du travail, et en connaitre un minimum devient, de mon point de vue, une obligation.

Continuons notre discussion :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants