CINXE.COM

devel:coding_style [DokuWiki]

<!DOCTYPE html> <html lang="en" dir="ltr" class="no-js"> <head> <meta charset="utf-8" /> <title>devel:coding_style [DokuWiki]</title> <meta name="generator" content="DokuWiki"/> <meta name="theme-color" content="#008800"/> <meta name="robots" content="index,follow"/> <meta name="keywords" content="devel,coding_style"/> <link rel="search" type="application/opensearchdescription+xml" href="/lib/exe/opensearch.php" title="DokuWiki"/> <link rel="start" href="/"/> <link rel="contents" href="/devel:coding_style?do=index" title="Sitemap"/> <link rel="manifest" href="/lib/exe/manifest.php"/> <link rel="alternate" type="application/rss+xml" title="Recent Changes" href="/feed.php"/> <link rel="alternate" type="application/rss+xml" title="Current namespace" href="/feed.php?mode=list&amp;ns=devel"/> <link rel="edit" title="Edit this page" href="/devel:coding_style?do=edit"/> <link rel="alternate" type="text/html" title="Plain HTML" href="/_export/xhtml/devel:coding_style"/> <link rel="alternate" type="text/plain" title="Wiki Markup" href="/_export/raw/devel:coding_style"/> <link rel="canonical" href="https://www.dokuwiki.org/devel:coding_style"/> <link rel="stylesheet" href="/lib/exe/css.php?t=dokuwiki&amp;tseed=f1005bad3d81fc9c803c7f93d32a390e"/> <link rel="alternate" hreflang="fr" href="https://www.dokuwiki.org/fr:devel:coding_style"/> <link rel="alternate" hreflang="ja" href="https://www.dokuwiki.org/ja:devel:coding_style"/> <link rel="alternate" hreflang="ru" href="https://www.dokuwiki.org/ru:devel:coding_style"/> <link rel="alternate" hreflang="x-default" href="https://www.dokuwiki.org/devel:coding_style"/> <script >var NS='devel';var JSINFO = {"plugins":{"edittable":{"default columnwidth":""}},"id":"devel:coding_style","namespace":"devel","ACT":"show","useHeadingNavigation":0,"useHeadingContent":0};(function(H){H.className=H.className.replace(/\bno-js\b/,'js')})(document.documentElement);</script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.4/jquery.min.js" defer="defer"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.13.2/jquery-ui.min.js" defer="defer"></script> <script src="/lib/exe/js.php?t=dokuwiki&amp;tseed=f1005bad3d81fc9c803c7f93d32a390e&amp;lang=en" defer="defer"></script> <meta name="viewport" content="width=device-width,initial-scale=1" /> <link rel="shortcut icon" href="/lib/tpl/dokuwiki/images/favicon.ico" /> <link rel="apple-touch-icon" href="/lib/tpl/dokuwiki/images/apple-touch-icon.png" /> <meta name="verify-v1" content="OVxl3gsCv2MhZqh1cBQyl0JytWXSwXMjyvwc+4w3WtA=" /> <meta name="google-site-verification" content="YhTVK69hW94ZXUtc2zSLPxTkZKbZIn0zK67mz5WQB-E" /> <!-- Global site tag (gtag.js) - Google Analytics --> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-83791-1"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-83791-1', { 'anonymize_ip': true }); </script> </head> <body> <div id="dokuwiki__site"><div id="dokuwiki__top" class="site dokuwiki mode_show tpl_dokuwiki showSidebar hasSidebar"> <!-- ********** HEADER ********** --> <header id="dokuwiki__header"><div class="pad group"> <div class="headings group"> <ul class="a11y skip"> <li><a href="#dokuwiki__content">skip to content</a></li> </ul> <h1 class="logo"><a href="/start" accesskey="h" title="Home [h]"><img src="/lib/tpl/dokuwiki/images/logo.png" width="64" height="64" alt="" /><span>DokuWiki</span></a></h1> <p class="claim">It's better when it's simple</p> </div> <div class="tools group"> <!-- USER TOOLS --> <div id="dokuwiki__usertools"> <h3 class="a11y">User Tools</h3> <ul> <li class="action login"><a href="/devel:coding_style?do=login&amp;sectok=" title="Log In" rel="nofollow"><span>Log In</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 17.25V14H3v-4h7V6.75L15.25 12 10 17.25M8 2h9a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2v-4h2v4h9V4H8v4H6V4a2 2 0 0 1 2-2z"/></svg></a></li> </ul> </div> <!-- SITE TOOLS --> <div id="dokuwiki__sitetools"> <h3 class="a11y">Site Tools</h3> <form action="/start" method="get" role="search" class="search doku_form" id="dw__search" accept-charset="utf-8"><input type="hidden" name="do" value="search" /><input type="hidden" name="id" value="devel:coding_style" /><div class="no"><input name="q" type="text" class="edit" title="[F]" accesskey="f" placeholder="Search" autocomplete="on" id="qsearch__in" value="" /><button value="1" type="submit" title="Search">Search</button><div id="qsearch__out" class="ajax_qsearch JSpopup"></div></div></form> <div class="mobileTools"> <form action="/doku.php" method="get" accept-charset="utf-8"><div class="no"><input type="hidden" name="id" value="devel:coding_style" /><select name="do" class="edit quickselect" title="Tools"><option value="">Tools</option><optgroup label="Page Tools"><option value="edit">Edit this page</option><option value="revisions">Old revisions</option><option value="backlink">Backlinks</option></optgroup><optgroup label="Site Tools"><option value="recent">Recent Changes</option><option value="media">Media Manager</option><option value="index">Sitemap</option></optgroup><optgroup label="User Tools"><option value="login">Log In</option></optgroup></select><button type="submit">&gt;</button></div></form> </div> <ul> <li class="action recent"><a href="/devel:coding_style?do=recent" title="Recent Changes [r]" rel="nofollow" accesskey="r">Recent Changes</a></li><li class="action media"><a href="/devel:coding_style?do=media&amp;ns=devel" title="Media Manager" rel="nofollow">Media Manager</a></li><li class="action index"><a href="/devel:coding_style?do=index" title="Sitemap [x]" rel="nofollow" accesskey="x">Sitemap</a></li> </ul> </div> </div> <!-- BREADCRUMBS --> <div class="breadcrumbs"> <div class="trace"><span class="bchead">Trace:</span> <span class="bcsep">•</span> <span class="curid"><bdi><a href="/devel:coding_style" class="breadcrumbs" title="devel:coding_style">coding_style</a></bdi></span></div> </div> <hr class="a11y" /> </div></header><!-- /header --> <div class="wrapper group"> <!-- ********** ASIDE ********** --> <nav id="dokuwiki__aside" aria-label="Sidebar"><div class="pad aside include group"> <h3 class="toggle">Sidebar</h3> <div class="content"><div class="group"> <div class="plugin_translation is-dropdown"><span class="title">Translations of this page<sup><a href="/localization" class="wikilink1" title="localization" data-wiki-id="localization">?</a></sup>: </span><ul><li class="span"><span class="wikilink1" title="English">English (en)</span></li><li class="a"><a class="wikilink2" title="|العربية" href="/ar:devel:coding_style">|العربية (ar)</a></li><li class="a"><a class="wikilink2" title="Català" href="/ca:devel:coding_style">Català (ca)</a></li><li class="a"><a class="wikilink2" title="Česky" href="/cs:devel:coding_style">Česky (cs)</a></li><li class="a"><a class="wikilink2" title="Dansk" href="/da:devel:coding_style">Dansk (da)</a></li><li class="a"><a class="wikilink2" title="Deutsch" href="/de:devel:coding_style">Deutsch (de)</a></li><li class="a"><a class="wikilink2" title="Ελληνικά" href="/el:devel:coding_style">Ελληνικά (el)</a></li><li class="a"><a class="wikilink2" title="Esperanto" href="/eo:devel:coding_style">Esperanto (eo)</a></li><li class="a"><a class="wikilink2" title="Español" href="/es:devel:coding_style">Español (es)</a></li><li class="a"><a class="wikilink2" title="فارسی" href="/fa:devel:coding_style">فارسی (fa)</a></li><li class="a"><a class="wikilink1" title="Français" href="/fr:devel:coding_style">Français (fr)</a></li><li class="a"><a class="wikilink2" title="עברית" href="/he:devel:coding_style">עברית (he)</a></li><li class="a"><a class="wikilink2" title="Magyar" href="/hu:devel:coding_style">Magyar (hu)</a></li><li class="a"><a class="wikilink2" title="Italiano" href="/it:devel:coding_style">Italiano (it)</a></li><li class="a"><a class="wikilink1" title="日本語" href="/ja:devel:coding_style">日本語 (ja)</a></li><li class="a"><a class="wikilink2" title="한국어" href="/ko:devel:coding_style">한국어 (ko)</a></li><li class="a"><a class="wikilink2" title="Lietuvių Kalba" href="/lt:devel:coding_style">Lietuvių Kalba (lt)</a></li><li class="a"><a class="wikilink2" title="Nederlands" href="/nl:devel:coding_style">Nederlands (nl)</a></li><li class="a"><a class="wikilink2" title="Norsk" href="/no:devel:coding_style">Norsk (no)</a></li><li class="a"><a class="wikilink2" title="Polski" href="/pl:devel:coding_style">Polski (pl)</a></li><li class="a"><a class="wikilink2" title="Português" href="/pt-br:devel:coding_style">Português (pt-br)</a></li><li class="a"><a class="wikilink2" title="Română" href="/ro:devel:coding_style">Română (ro)</a></li><li class="a"><a class="wikilink1" title="Русский" href="/ru:devel:coding_style">Русский (ru)</a></li><li class="a"><a class="wikilink2" title="Српски Језик" href="/sr:devel:coding_style">Српски Језик (sr)</a></li><li class="a"><a class="wikilink2" title="Svenska" href="/sv:devel:coding_style">Svenska (sv)</a></li><li class="a"><a class="wikilink2" title="ไทย" href="/th:devel:coding_style">ไทย (th)</a></li><li class="a"><a class="wikilink2" title="Українська" href="/uk:devel:coding_style">Українська (uk)</a></li><li class="a"><a class="wikilink2" title="中文" href="/zh:devel:coding_style">中文 (zh)</a></li><li class="a"><a class="wikilink2" title="繁體中文" href="/zh-tw:devel:coding_style">繁體中文 (zh-tw)</a></li></ul></div> <p> <strong>Learn about DokuWiki</strong> </p> <ul> <li class="level1"><div class="li"> <a href="/features" class="wikilink1" title="features" data-wiki-id="features">Features</a> &amp; <a href="/blogroll" class="wikilink1" title="blogroll" data-wiki-id="blogroll">reviews</a> </div> </li> <li class="level1"><div class="li"> <a href="/install" class="wikilink1" title="install" data-wiki-id="install">Installation guide</a></div> </li> <li class="level1"><div class="li"> <a href="/manual" class="wikilink1" title="manual" data-wiki-id="manual">User manual</a> &amp; <a href="/wiki:syntax" class="wikilink1" title="wiki:syntax" data-wiki-id="wiki:syntax">syntax</a></div> </li> <li class="level1"><div class="li"> <a href="/changes" class="wikilink1" title="changes" data-wiki-id="changes">Release notes</a></div> </li> <li class="level1"><div class="li"> <a href="/faq" class="wikilink1" title="faq" data-wiki-id="faq">FAQ</a></div> </li> </ul> <p> <strong>Advanced Use</strong> </p> <ul> <li class="level1"><div class="li"> <a href="/extensions" class="wikilink1" title="extensions" data-wiki-id="extensions">Extensions</a></div> </li> <li class="level1"><div class="li"> <a href="/development" class="wikilink1" title="development" data-wiki-id="development">Development manual</a></div> </li> </ul> <p> <strong>Corporate Use</strong> </p> <ul> <li class="level1"><div class="li"> <a href="/faq:support" class="wikilink1" title="faq:support" data-wiki-id="faq:support">Get support</a></div> </li> <li class="level1"><div class="li"> <a href="/donate" class="wikilink1" title="donate" data-wiki-id="donate">Donations</a></div> </li> </ul> <p> <strong>Our Community</strong> </p> <ul> <li class="level1"><div class="li"> <a href="/teams:getting_involved" class="wikilink1" title="teams:getting_involved" data-wiki-id="teams:getting_involved">Get involved</a></div> </li> <li class="level1"><div class="li"> <a href="/dokuinstall" class="wikilink1" title="dokuinstall" data-wiki-id="dokuinstall">Users</a></div> </li> <li class="level1"><div class="li"> <a href="http://forum.dokuwiki.org" class="urlextern" title="http://forum.dokuwiki.org">User forum</a></div> </li> <li class="level1"><div class="li"> <a href="/mailinglist" class="wikilink1" title="mailinglist" data-wiki-id="mailinglist">Development mailinglist</a></div> </li> </ul> <hr /> <p> Follow us on <a href="https://phpc.social/@dokuwiki" class="urlextern" title="https://phpc.social/@dokuwiki">Mastodon</a> and other <a href="/social" class="wikilink1" title="social" data-wiki-id="social">social networks</a>. </p> <p> <a href="/privacy" class="wikilink1" title="privacy" data-wiki-id="privacy">Our Privacy Policy</a> </p> </div></div> </div></nav><!-- /aside --> <!-- ********** CONTENT ********** --> <main id="dokuwiki__content"><div class="pad group"> <div class="pageId"><span>devel:coding_style</span></div> <div class="page group"> <!-- wikipage start --> <!-- TOC START --> <div id="dw__toc" class="dw__toc"> <h3 class="toggle">Table of Contents</h3> <div> <ul class="toc"> <li class="level1"><div class="li"><a href="#coding_style">Coding Style</a></div> <ul class="toc"> <li class="level2"><div class="li"><a href="#brackets_and_indentations">Brackets and Indentations</a></div></li> <li class="level2"><div class="li"><a href="#line_endings">Line Endings</a></div></li> <li class="level2"><div class="li"><a href="#commenting">Commenting</a></div></li> <li class="level2"><div class="li"><a href="#php_closing_tags">PHP Closing Tags</a></div></li> <li class="level2"><div class="li"><a href="#visibility_and_type_hints">Visibility and Type Hints</a></div></li> <li class="level2"><div class="li"><a href="#checking_for_coding_style_violations">Checking for Coding Style Violations</a></div></li> </ul></li> </ul> </div> </div> <!-- TOC END --> <h1 class="sectionedit1" id="coding_style">Coding Style</h1> <div class="level1"> <p> DokuWiki is a very old project and coding styles vary within the code. </p> <p> <strong>The official coding style to apply to all new code is <a href="https://www.php-fig.org/psr/psr-12/" class="urlextern" title="https://www.php-fig.org/psr/psr-12/">PSR-12</a></strong>. </p> <p> When editing existing code you&#039;re encouraged to update the coding style. When you do, it is recommended to do code reformatting in a commit separate from your code changes. </p> </div> <div class="secedit editbutton_section editbutton_1"><form class="button btn_secedit" method="post" action="/devel:coding_style"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1699906411" /><input type="hidden" name="summary" value="[Coding Style] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="coding_style" /><input type="hidden" name="codeblockOffset" value="0" /><input type="hidden" name="range" value="1-381" /><button type="submit" title="Coding Style">Edit</button></div></form></div> <h2 class="sectionedit2" id="brackets_and_indentations">Brackets and Indentations</h2> <div class="level2"> <p> You should indent your code by 4 <strong>spaces</strong> to mark logical blocks. Please <strong>do not use tabs</strong>. Some ancient code may still use 2 spaces; you should stick to this or change the whole file to 4 spaces. </p> <p> Opening brackets should start on the same line as the keyword, closing bracket should be aligned below the first letter of the starting keyword. E.g.: </p> <pre class="code php"><span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$foo</span> <span class="sy0">==</span> <span class="st0">&quot;bar&quot;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> call_bar<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="br0">&#125;</span> <span class="kw1">elseif</span> <span class="br0">&#40;</span><span class="re0">$foo</span> <span class="sy0">==</span> <span class="st0">&quot;baz&quot;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> call_baz<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span> call_other<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="br0">&#125;</span></pre> <p> Refer to PSR-12 for more details. </p> </div> <div class="secedit editbutton_section editbutton_2"><form class="button btn_secedit" method="post" action="/devel:coding_style"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1699906411" /><input type="hidden" name="summary" value="[Brackets and Indentations] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="brackets_and_indentations" /><input type="hidden" name="codeblockOffset" value="0" /><input type="hidden" name="range" value="382-939" /><button type="submit" title="Brackets and Indentations">Edit</button></div></form></div> <h2 class="sectionedit3" id="line_endings">Line Endings</h2> <div class="level2"> <p> Lines should end with a single linefeed character (UNIX style). Please try to avoid trailing whitespace. Have a look at our page about <a href="/devel:vim" class="wikilink1" title="devel:vim" data-wiki-id="devel:vim">Vim</a> to see how to set up Vim to spot these easily. <a href="/devel:intellij_idea" class="wikilink1" title="devel:intellij_idea" data-wiki-id="devel:intellij_idea">IntelliJ Idea</a> will also help with keeping a consistent style. </p> </div> <div class="secedit editbutton_section editbutton_3"><form class="button btn_secedit" method="post" action="/devel:coding_style"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1699906411" /><input type="hidden" name="summary" value="[Line Endings] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="line_endings" /><input type="hidden" name="codeblockOffset" value="1" /><input type="hidden" name="range" value="940-1223" /><button type="submit" title="Line Endings">Edit</button></div></form></div> <h2 class="sectionedit4" id="commenting">Commenting</h2> <div class="level2"> <p> Each function and class should have a PHPDocumentor style comment, giving at least the function&#039;s purpose. Parameter and return value descriptions are encouraged but only mandatory if they are not obvious. </p> <p> Author lines are optional, since we track authorship in git anyway. </p> <p> Example: </p> <pre class="code php"><span class="co4">/** * Check for foo in bar * * Checks if there is a foo in bar * * @author Joe Schmoe &lt;joe@example.com&gt; * @param string $in your input * @return bool true if foo in bar * */</span> <span class="kw2">function</span> is_foo<span class="br0">&#40;</span><span class="re0">$in</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="sy0">...</span> <span class="br0">&#125;</span></pre> <p> These comments are used for the <a href="https://codesearch.dokuwiki.org/search?project=dokuwiki&amp;defs=index&amp;path=" class="interwiki plugin_xref" title="search definitions for index">autogenerated API Docs</a>. </p> </div> <div class="secedit editbutton_section editbutton_4"><form class="button btn_secedit" method="post" action="/devel:coding_style"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1699906411" /><input type="hidden" name="summary" value="[Commenting] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="commenting" /><input type="hidden" name="codeblockOffset" value="1" /><input type="hidden" name="range" value="1224-1855" /><button type="submit" title="Commenting">Edit</button></div></form></div> <h2 class="sectionedit5" id="php_closing_tags">PHP Closing Tags</h2> <div class="level2"> <p> You should omit PHP&#039;s closing tags (<code>?&gt;</code>) in all files to avoid premature output. This may sound strange but is actually mentioned in the <a href="http://www.php.net/manual/en/language.basic-syntax.instruction-separation.php" class="urlextern" title="http://www.php.net/manual/en/language.basic-syntax.instruction-separation.php">PHP manual</a>: </p> <blockquote><div class="no"> <strong>Note:</strong> The closing tag of a PHP block at the end of a file is optional, and in some cases omitting it is helpful when using include() or require(), so unwanted whitespace will not occur at the end of files, and you will still be able to add headers to the response later. It is also handy if you use output buffering, and would not like to see added unwanted whitespace at the end of the parts generated by the included files.</div></blockquote> </div> <div class="secedit editbutton_section editbutton_5"><form class="button btn_secedit" method="post" action="/devel:coding_style"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1699906411" /><input type="hidden" name="summary" value="[PHP Closing Tags] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="php_closing_tags" /><input type="hidden" name="codeblockOffset" value="2" /><input type="hidden" name="range" value="1856-2554" /><button type="submit" title="PHP Closing Tags">Edit</button></div></form></div> <h2 class="sectionedit6" id="visibility_and_type_hints">Visibility and Type Hints</h2> <div class="level2"> <p> Please do not use <code>private</code> but use <code>protected</code> instead. You never know when a subclass may want to overwrite functionality. Eg. some plugin might want to provide new functionality based on your plugin. </p> <p> When using type hints be aware of the minimal supported PHP version for DokuWiki and don&#039;t use features not available in it. </p> <p> In general be wary of overusing type hinting, especially in all public facing APIs. Changing it changes method signatures which has effects on all inheriting classes. A simple type hint change may break swathes of plugins with signature violations. As a rule of thumb, try sticking to object type hints and otherwise rely mostly on doc strings and PHP&#039;s duck typing. </p> </div> <div class="secedit editbutton_section editbutton_6"><form class="button btn_secedit" method="post" action="/devel:coding_style"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1699906411" /><input type="hidden" name="summary" value="[Visibility and Type Hints] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="visibility_and_type_hints" /><input type="hidden" name="codeblockOffset" value="2" /><input type="hidden" name="range" value="2555-3295" /><button type="submit" title="Visibility and Type Hints">Edit</button></div></form></div> <h2 class="sectionedit7" id="checking_for_coding_style_violations">Checking for Coding Style Violations</h2> <div class="level2"> <p> Code styles can be checked with <a href="https://github.com/squizlabs/PHP_CodeSniffer" class="urlextern" title="https://github.com/squizlabs/PHP_CodeSniffer">PHP_CodeSniffer</a>. A configuration file is located in the <code>_test</code> directory. </p> </div> <h4 id="setup">Setup</h4> <div class="level4"> <p> Install via <a href="/devel:composer" class="wikilink1" title="devel:composer" data-wiki-id="devel:composer">composer</a>: </p> <pre class="code"> cd _test composer install</pre> </div> <h4 id="usage">Usage</h4> <div class="level4"> <p> You can use PHP_CodeSniffer to check a single file or an entire directory including subdirectories using the following commands. </p> <pre class="code"> # Check a single file cd _test composer check ../path/to/myfile.php # Check all files in a directory cd _test composer check ../path/to/directory</pre> </div> <div class="secedit editbutton_section editbutton_7"><form class="button btn_secedit" method="post" action="/devel:coding_style"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1699906411" /><input type="hidden" name="summary" value="[Checking for Coding Style Violations] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="checking_for_coding_style_violations" /><input type="hidden" name="codeblockOffset" value="2" /><input type="hidden" name="range" value="3296-" /><button type="submit" title="Checking for Coding Style Violations">Edit</button></div></form></div> <!-- wikipage stop --> </div> <div class="docInfo"><bdi>devel/coding_style.txt</bdi> · Last modified: <time datetime="2023-11-13T21:13:31+0100">2023-11-13 21:13</time> by <bdi>andi</bdi></div> <hr class="a11y" /> </div></main><!-- /content --> <!-- PAGE ACTIONS --> <nav id="dokuwiki__pagetools" aria-labelledby="dokuwiki__pagetools__heading"> <h3 class="a11y" id="dokuwiki__pagetools__heading">Page Tools</h3> <div class="tools"> <ul> <li class="edit"><a href="/devel:coding_style?do=edit" title="Edit this page [e]" rel="nofollow" accesskey="e"><span>Edit this page</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20.71 7.04c.39-.39.39-1.04 0-1.41l-2.34-2.34c-.37-.39-1.02-.39-1.41 0l-1.84 1.83 3.75 3.75M3 17.25V21h3.75L17.81 9.93l-3.75-3.75L3 17.25z"/></svg></a></li><li class="revs"><a href="/devel:coding_style?do=revisions" title="Old revisions [o]" rel="nofollow" accesskey="o"><span>Old revisions</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 7v5.11l4.71 2.79.79-1.28-4-2.37V7m0-5C8.97 2 5.91 3.92 4.27 6.77L2 4.5V11h6.5L5.75 8.25C6.96 5.73 9.5 4 12.5 4a7.5 7.5 0 0 1 7.5 7.5 7.5 7.5 0 0 1-7.5 7.5c-3.27 0-6.03-2.09-7.06-5h-2.1c1.1 4.03 4.77 7 9.16 7 5.24 0 9.5-4.25 9.5-9.5A9.5 9.5 0 0 0 12.5 2z"/></svg></a></li><li class="backlink"><a href="/devel:coding_style?do=backlink" title="Backlinks" rel="nofollow"><span>Backlinks</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10.59 13.41c.41.39.41 1.03 0 1.42-.39.39-1.03.39-1.42 0a5.003 5.003 0 0 1 0-7.07l3.54-3.54a5.003 5.003 0 0 1 7.07 0 5.003 5.003 0 0 1 0 7.07l-1.49 1.49c.01-.82-.12-1.64-.4-2.42l.47-.48a2.982 2.982 0 0 0 0-4.24 2.982 2.982 0 0 0-4.24 0l-3.53 3.53a2.982 2.982 0 0 0 0 4.24m2.82-4.24c.39-.39 1.03-.39 1.42 0a5.003 5.003 0 0 1 0 7.07l-3.54 3.54a5.003 5.003 0 0 1-7.07 0 5.003 5.003 0 0 1 0-7.07l1.49-1.49c-.01.82.12 1.64.4 2.43l-.47.47a2.982 2.982 0 0 0 0 4.24 2.982 2.982 0 0 0 4.24 0l3.53-3.53a2.982 2.982 0 0 0 0-4.24.973.973 0 0 1 0-1.42z"/></svg></a></li><li class="top"><a href="#dokuwiki__top" title="Back to top [t]" rel="nofollow" accesskey="t"><span>Back to top</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12z"/></svg></a></li> </ul> </div> </nav> </div><!-- /wrapper --> <!-- ********** FOOTER ********** --> <footer id="dokuwiki__footer"><div class="pad"> <div class="license">Except where otherwise noted, content on this wiki is licensed under the following license: <bdi><a href="https://creativecommons.org/licenses/by-sa/4.0/deed.en" rel="license" class="urlextern">CC Attribution-Share Alike 4.0 International</a></bdi></div> <div class="buttons"> <a href="https://creativecommons.org/licenses/by-sa/4.0/deed.en" rel="license"><img src="/lib/images/license/button/cc-by-sa.png" alt="CC Attribution-Share Alike 4.0 International" /></a> <a href="https://www.dokuwiki.org/donate" title="Donate" ><img src="/lib/tpl/dokuwiki/images/button-donate.gif" width="80" height="15" alt="Donate" /></a> <a href="https://php.net" title="Powered by PHP" ><img src="/lib/tpl/dokuwiki/images/button-php.gif" width="80" height="15" alt="Powered by PHP" /></a> <a href="//validator.w3.org/check/referer" title="Valid HTML5" ><img src="/lib/tpl/dokuwiki/images/button-html5.png" width="80" height="15" alt="Valid HTML5" /></a> <a href="//jigsaw.w3.org/css-validator/check/referer?profile=css3" title="Valid CSS" ><img src="/lib/tpl/dokuwiki/images/button-css.png" width="80" height="15" alt="Valid CSS" /></a> <a href="https://dokuwiki.org/" title="Driven by DokuWiki" ><img src="/lib/tpl/dokuwiki/images/button-dw.png" width="80" height="15" alt="Driven by DokuWiki" /></a> </div> <div style="margin-top: 2em; font-size:90%" class="dokuwiki"><div style="float:right"><a href="http://www.splitbrain.org/personal#imprint" style="float:right; text-decoration: none; color:#333">Imprint</a></div></div><!-- Include for DokuWiki site wide top bar --> <style type="text/css"> @media screen { body { padding-top: 30px; } #global__header { position: absolute; top: 0; left: 0; text-align: left; vertical-align: middle; line-height: 1.5; background-color: #333; box-shadow: 0 0 8px rgba(0,0,0,0.5); width: 100%; margin: 0; padding: 5px 20px; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; white-space: nowrap; overflow: hidden; } #global__header h2 { position: absolute; left: -99999em; top: 0; overflow: hidden; display: inline; } #global__header ul, #global__header li { margin: 0; padding: 0; list-style: none; display: inline; line-height: 1.5; } #global__header a { color: #bbb; text-decoration: none; margin-right: 20px; font-size: 14px; font-weight: normal; } #global__header a:hover, #global__header a:active, #global__header a:focus { color: #fff; text-decoration: underline; } #global__header form { float: right; margin: 0 0 0 20px; } #global__header input { background-color: #333; background-image: none; border: 1px solid #bbb; color: #fff; box-shadow: none; border-radius: 2px; margin: 0; line-height: normal; padding: 1px 0 1px 0; height: auto; } #global__header input.button { border: none; color: #bbb; } #global__header input.button:hover, #global__header input.button:active, #global__header input.button:focus { color: #fff; text-decoration: underline; } } /* /@media */ @media only screen and (min-width: 601px) { /* changes specific for www.dokuwiki.org */ #dokuwiki__header { padding-top: 3em; } #dokuwiki__usertools { top: 3em; } /* changes specific for bugs.dokuwiki.org */ div#container div#showtask { top: 40px; } } /* /@media */ @media only screen and (max-width: 600px) { body { padding-top: 0; } #global__header { position: static; white-space: normal; overflow: auto; } #global__header form { float: none; display: block; margin: 0 0 .4em; } } /* /@media */ @media print { #global__header { display: none; } } /* /@media */ </style> <div id="global__header"> <h2>Global DokuWiki Links</h2> <form method="get" action="https://search.dokuwiki.org/" target="_top"> <input type="text" name="q" title="Search all DokuWiki sites at once" class="input" /> <input type="submit" title="Search all DokuWiki sites at once" value="Search" class="button" /> </form> <ul> <li><a href="https://download.dokuwiki.org" title="Download the latest release" target="_top">Download</a></li> <li><a href="https://www.dokuwiki.org" title="Read the DokuWiki documentation" target="_top">Wiki</a></li> <li><a href="https://forum.dokuwiki.org" title="Ask questions in the DokuWiki forum" target="_top">Forum</a></li> <li><a href="https://irc.dokuwiki.org" title="Check IRC chat logs or join the chat" target="_top">IRC</a></li> <li><a href="https://github.com/splitbrain/dokuwiki/issues" title="Report and track bugs" target="_top">Bugs</a></li> <li><a href="https://translate.dokuwiki.org/" title="Help translating the DokuWiki interface" target="_top">Translate</a></li> <li><a href="https://github.com/splitbrain/dokuwiki" title="Access the most recent git commits" target="_top">Git</a></li> <li><a href="https://xref.dokuwiki.org/reference/dokuwiki/" title="Cross-Reference of the DokuWiki source code" target="_top">XRef</a></li> <li><a href="https://codesearch.dokuwiki.org/" title="Search through the sources of DokuWiki, plugins and templates" target="_top">Code Search</a></li> </ul> </div> <!-- end of DokuWiki top bar include --> </div></footer><!-- /footer --> </div></div><!-- /site --> <div class="no"><img src="/lib/exe/taskrunner.php?id=devel%3Acoding_style&amp;1742632564" width="2" height="1" alt="" /></div> <div id="screen__mode" class="no"></div></body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10