Skip to Content
MoodlePartie 16 — Quiz (auto-évaluation)Quiz 5 — Expert & carrière

Quiz 5 — Expert & carrière

⏱️ TL;DR — 20 questions sur la sécurité, la qualité, la publication et la monétisation (Parties 11 & 13). Réponds de tête, puis déplie.


1. require_login vs require_capability : quelle différence ?

Réponse

require_login dit « connecté et accès au cours/activité » ; require_capability dit « autorisé (droit) dans ce contexte ». Les deux sont nécessaires.

2. Quand utiliser s(), format_string() et format_text() ?

Réponse

s() = texte simple échappé ; format_string() = noms/titres (échappe + filtres) ; format_text() = contenu riche HTML (nettoie + filtres + fichiers). On échappe à la sortie.

3. Comment interroger la base avec un paramètre utilisateur en sécurité ?

Réponse

Via le DML paramétré (get_record($t, ['id'=>$id])) ou get_records_sql($sql, $params) avec des placeholders. Jamais de concaténation dans une requête.

4. À quoi sert clean_param ?

Réponse

À appliquer un type PARAM_* à une valeur déjà en main (issue d’un calcul, d’un WS). Complète required_param. On type toute donnée douteuse.

5. Le privacy provider est-il optionnel ?

Réponse

Non, si le plugin stocke des données perso : le Privacy API (metadata + export + suppression) est obligatoire pour la conformité RGPD et la publication.

6. Qu’est-ce que « moodle-cs » vérifie ?

Réponse

Le coding style (PHP_CodeSniffer) : indentation, nommage, PHPDoc, en-tête GPL, fonctions interdites, patterns de sécurité. Vise zéro erreur avant publication.

7. Comment teste-t-on la logique d’un plugin ?

Réponse

Avec PHPUnit (framework intégré : advanced_testcase, générateurs de données, resetAfterTest). Filet contre les régressions.

8. À quoi sert Behat ?

Réponse

À tester les parcours utilisateur dans un navigateur (scénarios Gherkin Given/When/Then). Vérifie l’UX de bout en bout.

9. Pourquoi le backup/restore d’un module est-il critique ?

Réponse

Parce qu’un mod qui ne se sauvegarde pas correctement perd les données des utilisateurs à la restauration. C’est la partie la plus négligée et la plus testée en review.

10. Quel levier de performance côté Moodle ?

Réponse

Le cache (MUC — Moodle Universal Cache) pour éviter de recalculer, plus des requêtes DML efficaces et un cron correct. Query-profiling pour repérer les requêtes lourdes.

11. Qu’exécutent les tâches planifiées, et de quoi dépendent-elles ?

Réponse

Nettoyage, envois, calculs, sauvegardes… Elles supposent un cron système qui appelle admin/cli/cron.php régulièrement. Sans cron, « rien ne se passe » en arrière-plan.

12. Que vérifie la review du Moodle plugins directory ?

Réponse

Sécurité, coding style, i18n, privacy, backup/restore, absence de core hack, licence GPL. Publier = passer cette revue (Partie 11).

13. Pourquoi la double compétence Moodle × Next.js est-elle rare ?

Réponse

Peu de devs maîtrisent à la fois le cœur PHP de Moodle et le web moderne (React, headless, LTI). Ce pont (web services + outil LTI Next.js) se facture cher.

14. En freelance, TJM ou forfait au début ?

Réponse

TJM : il protège ton temps pendant la montée en maîtrise. Le forfait vient plus tard, quand tu sais estimer un type de mission sans risque.

15. Différence entre une mission et un produit récurrent ?

Réponse

La mission est consommable (temps = revenu, puis fini) ; le produit est un actif qui s’additionne à chaque client (MRR). Le produit découple revenu et temps.

16. Quel modèle pour QuizLab (outil LTI) ?

Réponse

Un micro-SaaS : outil LTI multi-tenant + abonnement par établissement/quotas. Standard LTI = portabilité (tout LMS), donc revenu récurrent (Partie 13).

17. La GPL de Moodle empêche-t-elle de gagner de l’argent ?

Réponse

Non : elle porte sur la licence du code, pas sur le revenu. On vend le service (SaaS hébergé, support, développement) — d’où l’intérêt du SaaS/LTI (valeur sur ton infra).

18. En CDD, peut-on cumuler une micro-entreprise (FR) ?

Réponse

Généralement oui, sous conditions (clause d’exclusivité/loyauté, secteur non concurrent, hors temps de travail). À vérifier au cas par cas — ce n’est pas un conseil juridique.

19. Pourquoi les web services sont-ils un « pont de valeur » ?

Réponse

Ils ouvrent Moodle à des fronts modernes (Next.js), apps mobiles, systèmes tiers. Brancher Moodle sur du moderne est une compétence recherchée et bien payée.

20. Résume les réflexes de sécurité en une phrase.

Réponse

Vérifier l’accès (require_login + require_capability), assainir l’entrée (PARAM_*), échapper la sortie (s/format_*), protéger les actions (sesskey). Non négociable.


🎓 Fin des quiz Moodle. Si tu scores > 70 % partout, tu maîtrises le cours. Sinon, chaque quiz raté pointe la partie à relire. Retour à la vue d’ensemble des quiz ou aux projets guidés.