Le PHPDoc dans le code source

Présentation

Les « docblocks » sont des commentaires PHP spécifiques dans le code pour documenter celui-ci. Ils commencent par /** et se terminent par */. En général, le signe * crée un filet vertical :

/**
 * Ceci est un docblock
 */

Par convention, la première ligne sert de description courte de la fonction. Elle peut être suffisante ou non. Si une description plus longue doit être apportée, il faut sauter une ligne entre les deux :

/**
 * Ceci est la description courte, généralement sur une seule ligne
 *
 * Ceci est une description longue, facultative. Elle commence après la ligne
 * vide qui suit la description courte
 */

Le contenu à l’intérieur de ces blocs s’écrit en utilisant une syntaxe Markdown. Celle-ci bien que très pratique a quelques subtilités. La plus importante à connaître, c’est que toute liste d’éléments a aussi une ligne vide avant :

/**
 * Ceci est la description courte, généralement sur une seule ligne
 *
 * Ceci est une description longue
 *
 * - Et ceci est un élément de liste (il doit y avoir une ligne vide avant)
 * - Et un autre élément.
 */

Insérer du code

On peut citer du code de trois manières, entre

<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+Jmx0Oy9jb2RlJmd0OywgaW5kZW50w6kgZGUgNCBlc3BhY2VzLCBvdSBlbnRyZSBtdWx0aXBsZXMgJmx0O2NvZGUmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtiYXNlNjQmcXVvdDsgdGl0bGU9JnF1b3Q7UEdScGRpQmpiR0Z6Y3owaWNISmxZMjlrWlNJK1BIQnlaU0JqYkdGemN6MGljM0JwY0Y5amIyUmxJSE53YVhCZlkyOWtaVjlpYkc5amF5SWdaR2x5UFNKc2RISWlJSE4wZVd4bFBTSjBaWGgwTFdGc2FXZHVPaUJzWldaME95SStQR052WkdVK0pteDBPeTlqYjJSbEptZDBPeUFvYjNVZ2RXNGdiY09wYkdGdVoyVWdaR1Z6SURJZ1pHVnlibWxsY25NcElEb05DaVpzZER0allXUnlaU0JqYkdGemN6MG5jR2h3SnlabmREc05DaThxS2cwS0lDb2dRMlZqYVNCbGMzUWdZR1IxSUdOdlpHVWdaVzRnYkdsbmJtVmdEUW9nS2cwS0lDb2dRMlZqYVNCbGMzUWdkVzVsSUdSbGMyTnlhWEIwYVc5dUlHeHZibWQxWlEwS0lDb05DaUFxSUNBZ0lDQkRaV05wSUdWemRDQmhkWE56YVNCMWJpQmliRzlqSUdSbElHTnZaR1VnYzNWeUlIQnNkWE5wWlhWeWN5QnNhV2R1WlhNdUlBMEtJQ29nSUNBZ0lFbHNJR1poZFhRZ2RXNWxJR3hwWjI1bElIWnBaR1VnWlhRZ2RXNWxJR2x1WkdWdWRHRjBhVzl1SUdRbllYVWdiVzlwYm5NZ05DQmxjM0JoWTJWekxnMEtJQ29nSUEwS0lDb2dQQzlqYjJSbFBqd3ZjSEpsUGp3dlpHbDJQZz09JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0Ow0KICogQ2VjaSBlc3QgYXVzc2kgZHUgY29kZSBzdXIgcGx1c2lldXJzIGxpZ25lcw0KICogJmx0O2RpdiBjbGFzcz0mcXVvdDtiYXNlNjQmcXVvdDsgdGl0bGU9JnF1b3Q7UEdScGRpQmpiR0Z6Y3owaWNISmxZMjlrWlNJK1BIQnlaU0JqYkdGemN6MGljM0JwY0Y5amIyUmxJSE53YVhCZlkyOWtaVjlpYkc5amF5SWdaR2x5UFNKc2RISWlJSE4wZVd4bFBTSjBaWGgwTFdGc2FXZHVPaUJzWldaME95SStQR052WkdVK0lDb2dJQ0FnSUNBOEwyTnZaR1UrUEM5d2NtVStQQzlrYVhZKyZxdW90OyZndDsmbHQ7L2RpdiZndDsNCiAqICZuYnNwOyAmbmJzcDsgJm5ic3A7Q2VjaSBlc3QgZW5jb3JlIGR1IGNvZGUNCiAqICZuYnNwOyAmbmJzcDsgJm5ic3A7Jmx0O2RpdiBjbGFzcz0mcXVvdDtiYXNlNjQmcXVvdDsgdGl0bGU9JnF1b3Q7UEdScGRpQmpiR0Z6Y3owaWNISmxZMjlrWlNJK1BIQnlaU0JqYkdGemN6MGljM0JwY0Y5amIyUmxJSE53YVhCZlkyOWtaVjlpYkc5amF5SWdaR2x5UFNKc2RISWlJSE4wZVd4bFBTSjBaWGgwTFdGc2FXZHVPaUJzWldaME95SStQR052WkdVK0lDb3ZEUW9tYkhRN0wyTmhaSEpsSm1kME93MEtEUW9OQ250N2UweGxjeUIwWVdkemZYMTlEUW9OQ2t4bGN5QW5kR0ZuY3ljZ2MyOXVkQ0JqYjIxdFpTQmtaWE1nZG1GeWFXRmliR1Z6SUhGMWFTQnpaWEoyWlc1MElNT2dJR1REcVdOeWFYSmxJRzV2ZEhKbElHWnZibU4wYVc5dUxpQkpiSE1nWkc5dWJtVnVkQ0JrWlhNZ2FXNW1iM0p0WVhScGIyNXpJR1Z1SUhCc2RYTWdjR0Z5SUhKaGNIQnZjblFnWVhWNElHUmxjMk55YVhCMGFXOXVjeUJqYjNWeWRHVnpJR1YwSUd4dmJtZDFaWE11SUZWdUlIUmhaeUJ6SjhPcFkzSnBkQ0JnUUc1dmJWOWtkVjkwWVdkZ0lHVjBJR2xzSUhCbGRYUWdjeWRsYmlCemRXbDJjbVVnZFc0Z1kyVnlkR0ZwYmlCamIyNTBaVzUxTENCbGJpQm1iMjVqZEdsdmJpQmtkU0IwWVdjdURRb05DbFp2YVdOcElHUnZibU1nY1hWbGJIRjFaWE1nWlhobGJYQnNaWE1nWkdVZ2RHRm5jeUE2RFFvTkNpWnNkRHRqWVdSeVpTQmpiR0Z6Y3owbmNHaHdKeVpuZERzTkNpOHFLZzBLSUNvZ1JHVnpZM0pwY0hScGIyNGdZMjkxY25SbERRb2dLZzBLSUNvZ1FHRndhUTBLSUNvZ1FITmxaU0JqYUdWdGFXNG9LUTBLSUNvZ1FHeHBibXNnYUhSMGNEb3ZMM2QzZHk1emNHbHdMbTVsZEM4dUxpNE5DaUFxTHcwS0pteDBPeTlqWVdSeVpTWm5kRHNOQ2cwS2UzdDdUR2x6ZEdVZ1pHVnpJSFJoWjNNZ1pHVWdVRWhRUkc5amZYMTlEUW9OQ2xOMWNpQnNZU0JqWVhURHFXZHZjbWx6WVhScGIyNGdLR2ZEcVc3RHFYSmhiR1Z0Wlc1MElIQnZkWElnYkNkbGJuVERxblJsSUdSbElHWnBZMmhwWlhJcElEb05DaTBxSUNac2REdGpiMlJsSm1kME8wQndZV05yWVdkbElIZ21iSFE3TDJOdlpHVW1aM1E3SURvZ1NXNWthWEYxWlNCeGRXVWdiQ2ZEcVd6RHFXMWxiblFnY21WbmNtOTFjTU9wSUdSaGJuTWdlQTBLTFNvZ0pteDBPMk52WkdVbVozUTdRSEJoWTJ0aFoyVWdVMUJKVUZ4RGIzSmxYSGdtYkhRN0wyTnZaR1VtWjNRN0lEb2dTVzVrYVhGMVpTQnhkV1VnYkNmRHFXekRxVzFsYm5RZ1pYTjBJR1IxSUZOUVNWQXNJR1JoYm5NZ2JHVWdRMjl5WlN3Z2NIVnBjeUJrWVc1eklIVnVJSE52ZFhNZ3c2bHN3Nmx0Wlc1MElIZ05DaTBxSUNac2REdGpiMlJsSm1kME8wQndZV05yWVdkbElGTlFTVkJjUW5KbGRtVnpYSGdtYkhRN0wyTnZaR1VtWjNRN0lEb2dTVzVrYVhGMVpTQnhkV1VnYkNmRHFXekRxVzFsYm5RZ2NtVm5jbTkxY01PcElHUmhibk1nYkdVZ2NHeDFaMmx1SUVKeXc2aDJaWE1zSUhCMWFYTWdaR0Z1Y3lCc1pTQnpiM1Z6SU1PcGJNT3BiV1Z1ZENCNExnMEtEUW9tYkhRN1pHbDJJR05zWVhOelBTZHBibVp2SnlabmREc05DbnQ3VEdFZ2JHbHpkR1VnWkdWeklITnZkWE1ndzZsc3c2bHRaVzUwY3lCbGMzUWdaVzVqYjNKbElNT2dJR1REcVdacGJtbHlJSEJzZFhNZ2NITERxV05wYzhPcGJXVnVkQzU5ZlEwS1QyNGdkSEp2ZFhabElHRmpkSFZsYkd4bGJXVnVkQ0E2SUVsdWMzUmhiR3hoZEdsdmJpd2dRWFYwYjNKcGMyRjBhVzl1Y3l3Z1VHbHdaV3hwYm1WekxDQkJZM1JwYjI0c0lHUmxJR1podzZkdmJpQmhjM05sZWlCbnc2bHV3Nmx5YVhGMVpTNGdRMlZqYVNCeVpYTjBaU0REb0NCd2NzT3BZMmx6WlhJdURRb21iSFE3TDJScGRpWm5kRHNOQ2cwS1UzVnlJR3duZFhOaFoyVWdaR1VnYkNmRHFXekRxVzFsYm5RZ09nMEtMU29nSm14ME8yTnZaR1VtWjNRN1FHRndhU1pzZERzdlkyOWtaU1puZERzZ09pQkpibVJwY1hWbElIRjFaU0JzSjhPcGJNT3BiV1Z1ZENCbGMzUWdkVzVsSUVGUVNRMEtMU29nSm14ME8yTnZaR1VtWjNRN1FHUmxjSEpsWTJGMFpXUmJJSFJsZUhSbFhTWnNkRHN2WTI5a1pTWm5kRHNnT2lCSmJtUnBjWFZsSUhGMVpTQnNKOE9wYk1PcGJXVnVkQ0JsYzNRZ1pNT3BjSExEcVdOcHc2a2daWE4wSUc1bElHUnZhWFFnY0d4MWN5RERxblJ5WlNCMWRHbHNhWFBEcVM0Z1RHVWdkR1Y0ZEdVZ2NHVjFkQ0J6WlhKMmFYSWd3NkFnYVc1a2FYRjFaWElnYkNkaGJIUmxjbTVoZEdsMlpTRERvQ0IxZEdsc2FYTmxjaTROQ2cwS1UzVnlJR3hsY3lCc2FXVnVjeUJsYm5SeVpTRERxV3pEcVcxbGJuUnpJR1YwSUdSdlkzVnRaVzUwWVhScGIyNXpJRG9OQ2kwcUlDWnNkRHRqYjJSbEptZDBPMEJ6WldVZ1pXeGxiV1Z1ZENCYmRHVjRkR1ZkSm14ME95OWpiMlJsSm1kME95QTZJR2x1WkdseGRXVWdkVzRnY21WdWRtOXBaU0IyWlhKeklIVnVJR0YxZEhKbElNT3BiTU9wYldWdWRBMEtMU29nSm14ME8yTnZaR1VtWjNRN1FIVnpaWE1nWld4bGJXVnVkQ0JiZEdWNGRHVmRKbXgwT3k5amIyUmxKbWQwT3lBNklHbHVaR2x4ZFdVZ2NYVmxJR3hoSUdadmJtTjBhVzl1SUhWMGFXeHBjMlVnWTJWMElNT3BiTU9wYldWdWRBMEtMU29nSm14ME8yTnZaR1VtWjNRN1FHeHBibXNnZFhKc0lGdDBaWGgwWlYwbWJIUTdMMk52WkdVbVozUTdJRG9nYVc1a2FYRjFaU0IxYmlCeVpXNTJiMmxsSUhabGNuTWdkVzVsSUhKbGMzTnZkWEpqWlNCbGVIUmxjbTVsRFFvTkNsTjFjaUJzWlhNZ2NHRnlZVzNEcUhSeVpYTWdPZzBLTFNvZ0pteDBPMk52WkdVbVozUTdRSEJoY21GdElIUjVjR1VnSkhaaGNpQmJkR1Y0ZEdWZEpteDBPeTlqYjJSbEptZDBPeUE2SUdsdVpHbHhkV1VnY1hWbElHeGxJSEJoY21GdHc2aDBjbVVnSkhaaGNpQmtaU0JzWVNCbWIyNWpkR2x2YmlCbGMzUWdaSFVnZEhsd1pTQnBibVJwY1hYRHFTNGdUMjRnY0dWMWRDQnBibVJwY1hWbGNpQndiSFZ6YVdWMWNuTWdjRzl6YzJsaWFXeHBkTU9wY3lCaGRtVmpJQ1pzZER0amIyUmxKbWQwTzN3bWJIUTdMMk52WkdVbVozUTdJRG9nSm14ME8yTnZaR1VtWjNRN2FXNTBmSE4wY21sdVozeHVkV3hzSUNSMllYSW1iSFE3TDJOdlpHVW1aM1E3TGlCTWIzSnpjWFVuYVd3Z2VTQmhJSEJzZFhOcFpYVnljeUJ3WVhKaGJjT29kSEpsY3l3Z1pYUWdaRzl1WXlCd2JIVnphV1YxY25NZ1ptOXBjeUJzWlNCMFlXY2dZRUJ3WVhKaGJXQXNJSFpsYVd4c1pYb2d3NkFnWTI5dWMyVnlkbVZ5SUd4bElHM0RxbTFsSUc5eVpISmxJSEYxWlNCc1pYTWdjR0Z5WVczRHFIUnlaWE1nWkdVZ2JHRWdabTl1WTNScGIyNHNJR1YwSUd4bGN5QnR3NnB0WlhNZ2JtOXRjeUJrWlNCMllYSnBZV0pzWlM0TkNpMHFJQ1pzZER0amIyUmxKbWQwTzBCeVpYUjFjbTRnZEhsd1pTWnNkRHN2WTI5a1pTWm5kRHNnT2lCd1lYSmxhV3dnY1hWbElFQndZWEpoYlNCd2IzVnlJR3hsY3lCeVpYUnZkWEp6SUdSbElHeGhJR1p2Ym1OMGFXOXVMaUJPYjNSbGVpQnhkV1VnYzJrZ2JHRWdabTl1WTNScGIyNGdibVVnY21WMGIzVnlibVVnY21sbGJpQW9ZWFZqZFc0Z2JXOTBJR05zdzZrZ0pteDBPMk52WkdVbVozUTdjbVYwZFhKdUpteDBPeTlqYjJSbEptZDBPeUJrWVc1eklHeGxJR052WkdVZ1pHVWdiR0VnWm05dVkzUnBiMjRwTENCMmIzVnpJSEJ2ZFhabGVpQnZiV1YwZEhKbElFQnlaWFIxY200c0lHOTFJR2x1WkdseGRXVnlJQ1pzZER0amIyUmxKbWQwTzBCeVpYUjFjbTRnZG05cFpDWnNkRHN2WTI5a1pTWm5kRHN1SUU1dmRHVjZJR0YxYzNOcElIRjFaU0FtYkhRN1kyOWtaU1puZER0QWNtVjBkWEp1SUc1MWJHd21iSFE3TDJOdlpHVW1aM1E3SUdWemRDQmthV1ptdzZseVpXNTBJR1JsSUNac2REdGpiMlJsSm1kME8wQnlaWFIxY200Z2RtOXBaQ1pzZERzdlkyOWtaU1puZERzdUlGWnZkWE1nY0c5MWRtVjZJR04xYlhWc1pYSWdjR3gxYzJsbGRYSnpJSEpsZEc5MWNuTWdZbWxsYmlERHFYWnBaR1Z0YldWdWRDQjBaV3dnY1hWbElDWnNkRHRqYjJSbEptZDBPMEJ5WlhSMWNtNGdkbTlwWkh4cGJuUjhjM1J5YVc1bkpteDBPeTlqYjJSbEptZDBPdzBLRFFwQmRYUnlaWE1nZEdGbmN5QTZEUW90S2lBbWJIUTdZMjlrWlNabmREdEFaWGhoYlhCc1pTQmJkR1Y0ZEdWZEpteDBPeTlqYjJSbEptZDBPeUJ6WlhKMElNT2dJR1J2Ym01bGNpQjFiaUJ2ZFNCd2JIVnphV1YxY25NZ1pYaGxiWEJzWlhNdUlGTW5hV3dnZVNCaElHUjFJR052WkdVZ1pHRnVjeUJzSjJWNFpXMXdiR1VzSUdsc0lHUnZhWFFndzZwMGNtVWd3NmxqYUdGd2NNT3BJSE5sYkc5dUlHd25kWE5oWjJVc0lIQmhjaUJsZUdWdGNHeGxJTU9xZEhKbElHMXBjeUJsYm5SeVpTQW1iSFE3WTI5a1pTWm5kRHM4TDJOdlpHVStQQzl3Y21VK1BDOWthWFkrJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OyZsdDsvY29kZSZndDsuDQotKiAmbHQ7Y29kZSZndDtAdG9kbyBbdGV4dGVdJmx0Oy9jb2RlJmd0OyBpbmRpcXVlIHF1ZWxxdWUgY2hvc2UgcXVpIHJlc3RlIMOgIGZhaXJlICENCg0KDQp7e3tUYWdzIHNww6ljaWZpcXVlcyDDoCBTUElQfX19DQoNCi0qICZsdDtjb2RlJmd0O0Bub3RlIFt0ZXh0ZV0mbHQ7L2NvZGUmZ3Q7IEluZGlxdWUgdW4gY29tbWVudGFpcmUgcGx1dMO0dCBlbiByZWxhdGlvbiBhdmVjIGxlIGNvZGUgaW50ZXJuZSBkZSBsYSBmb25jdGlvbg0KLSogJmx0O2NvZGUmZ3Q7QGJhbGlzZSZsdDsvY29kZSZndDsgSW5kaXF1ZSBxdWUgbGEgZm9uY3Rpb24gY29tcGlsZSB1bmUgYmFsaXNlICZsdDtjb2RlJmd0OyNYWCZsdDsvY29kZSZndDsNCi0qICZsdDtjb2RlJmd0O0BmaWx0cmUmbHQ7L2NvZGUmZ3Q7IGluZGlxdWUgcXVlIGxhIGZvbmN0aW9uIHBldXQgc2VydmlyIGRlIGZpbHRyZSBkYW5zIHVuIHNxdWVsZXR0ZQ0KLSogJmx0O2NvZGUmZ3Q7QGNyaXRlcmUmbHQ7L2NvZGUmZ3Q7IGluZGlxdWUgcXVlIGxhIGZvbmN0aW9uIGNvbXBpbGUgdW4gY3JpdMOocmUNCi0qICZsdDtjb2RlJmd0O0Bib3VjbGUmbHQ7L2NvZGUmZ3Q7IGluZGlxdWUgcXVlIGxhIGZvbmN0aW9uIGNvbXBpbGUgdW5lIGJvdWNsZQ0KLSogJmx0O2NvZGUmZ3Q7QHBpcGVsaW5lIHh4Jmx0Oy9jb2RlJmd0OyBpbmRpcXVlIHF1ZSBsYSBmb25jdGlvbiBlc3QgdHJhdmVyc8OpZSBsb3JzIGRlIGwnYXBwZWwgcGFyIGxlIHBpcGVsaW5lIHh4LiBMYSBmb25jdGlvbiBwZXV0IGRvbmMgY29tcGzDqXRlciBkZXMgZG9ubsOpZXMgc3VyIGxlIHBpcGVsaW5lLg0KLSogJmx0O2NvZGUmZ3Q7QHBpcGVsaW5lX2FwcGVsIHh4Jmx0Oy9jb2RlJmd0OyBpbmRpcXVlIHF1ZSBsYSBmb25jdGlvbiBhcHBlbGxlIGxhIGZvbmN0aW9uICZsdDtjb2RlJmd0O3BpcGVsaW5lKCkmbHQ7L2NvZGUmZ3Q7IGF2ZWMgbGUgcGlwZWxpbmUgeHggcG91ciBlbiBvYnRlbmlyIGRlcyBkb25uw6llcw0KDQoNCnt7eyBFeGVtcGxlcyBwb3VyIGRlcyBmb25jdGlvbnMgfX19DQoNCiZsdDtjYWRyZSBjbGFzcz0ncGhwJyZndDsNCi8qKg0KICogRG9ubmUgbGUgbm9tIGRlIGxhIGNvcGllIGxvY2FsZSBkZSBsYSBzb3VyY2UNCiAqDQogKiBTb2l0IG9idGllbnQgbCdleHRlbnNpb24gZHUgZmljaGllciBkaXJlY3RlbWVudCBkZSBsJ1VSTCBkZSBsYSBzb3VyY2UsDQogKiBzb2l0IHRlbnRlIGRlIGxlIGNhbGN1bGVyLg0KICoNCiAqIEB1c2VzIG5vbV9maWNoaWVyX2NvcGllX2xvY2FsZSgpDQogKiBAdXNlcyByZWN1cGVyZXJfaW5mb3NfZGlzdGFudGVzKCkNCiAqDQogKiBAcGFyYW0gc3RyaW5nICRzb3VyY2UNCiAqICZuYnNwOyAmbmJzcDsgJm5ic3A7VVJMIGRlIGxhIHNvdXJjZSBkaXN0YW50ZQ0KICogQHJldHVybiBzdHJpbmcNCiAqICZuYnNwOyAmbmJzcDsgJm5ic3A7Tm9tIGR1IGZpY2hpZXIgY2FsY3Vsw6kNCioqLw0KZnVuY3Rpb24gZmljaGllcl9jb3BpZV9sb2NhbGUoJHNvdXJjZSl7DQombHQ7L2NhZHJlJmd0Ow0KJmx0O2NhZHJlIGNsYXNzPSdwaHAnJmd0Ow0KDQovKioNCiAqIFJldG91cm5lIGxlIG5vbWJyZSBkZSBsaWduZXMgZOKAmXVuZSByZXNzb3VyY2UgZGUgc8OpbGVjdGlvbiBvYnRlbnVlDQogKiBhdmVjPC9jb2RlPg=="></span>sql_select()`
 *
 * @api
 * @see sql_select()
 * @see sql_countsel()
 *
 * @param Ressource $res
 *     Ressource SQL
 * @param string $serveur
 *     Nom du connecteur
 * @param bool|string $option
 *     Peut avoir 2 valeurs :
 * 
 *     - true -> executer la requete
 *     - continue -> ne pas echouer en cas de serveur sql indisponible
 * @return bool|string
 *     - int Nombre de lignes,
 *     - false en cas d'erreur.
**/
function sql_count($res, $serveur='', $option=true) {
</cadre>


{{{En-tête de fichiers}}}

PHPDocumentor n'est pas content lorsqu'il n'a pas de phpdoc pour un en-tête de fichier. Comme pour les fonctions, il est bon que chaque fichier décrive plus ou moins laconiquement leur contenu. Exemples :

(mauvais exemple, il manque les accents !)

<cadre class='php'>
/**
 * Definition de l'API SQL
 * 
 * Ce fichier definit la couche d'abstraction entre SPIP et ses serveurs SQL.
 * Cette version 1 est un ensemble de fonctions ecrites rapidement
 * pour generaliser le code strictement MySQL de SPIP <= 1.9.2
 * Des retouches sont a prevoir apres l'experience des premiers portages.
 * Les symboles sql_* (constantes et nom de fonctions) sont reserves
 * a cette interface, sans quoi le gestionnaire de version dysfonctionnera.
 *
 * @package SPIP\Core\SQL\API
 * @version 1
 */
</cadre>

Ou plus simplement :
<cadre class='php'>
/**
 * Gestion de l'action activer_plugins
 *
 * @package SPIP\Core\Plugins
**/
</cadre>

{{{Éléments obligatoires et optionnels}}}

PHPDocumentor loge une erreur dès que certains PHPDoc sont absents. Ils sont normalement obligatoires sur ces éléments :
-* entête de fichier
-* fonction
-* classe
-* propriété de classe
-* méthode de classe

Il est aussi possible d'en mettre sur les constantes déclarées (mais alors juste avant sa déclaration, pas avant un éventuel <code>if

qui la précède. L’autodoc peut alors générer la liste des constantes présente dans le code source, avec une belle description à côté.

Exemple :

if (!defined('_DIR_RESTREINT_ABS')) {
	/** le nom du repertoire ecrire/ */
	define('_DIR_RESTREINT_ABS', 'ecrire/');
}

Auteur Matthieu Marcillaud Publié le : Mis à jour : 07/08/23