<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://www.wiki.murlstutz.ch/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://www.wiki.murlstutz.ch/feed.php">
        <title>Lerndoku</title>
        <description></description>
        <link>https://www.wiki.murlstutz.ch/</link>
        <image rdf:resource="https://www.wiki.murlstutz.ch/lib/exe/fetch.php?media=wiki:dokuwiki.svg" />
       <dc:date>2026-09-28T13:17:32+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://www.wiki.murlstutz.ch/doku.php?id=programmieren:cakephp:controllers:start&amp;rev=1790345927&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wiki.murlstutz.ch/doku.php?id=programmieren:cakephp:controllers:view_vars&amp;rev=1790344547&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wiki.murlstutz.ch/doku.php?id=programmieren:php:authentication&amp;rev=1790259003&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wiki.murlstutz.ch/doku.php?id=programmieren:grundlagen:kontrollstrukturen&amp;rev=1790165626&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wiki.murlstutz.ch/doku.php?id=programmieren:php:pass_by_reference&amp;rev=1790082677&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wiki.murlstutz.ch/doku.php?id=programmieren:cakephp:traits&amp;rev=1789741953&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wiki.murlstutz.ch/doku.php?id=programmieren:cakephp:traits:type_aligned_assertions_trait&amp;rev=1789656582&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wiki.murlstutz.ch/doku.php?id=programmieren:grundlagen:datentypen&amp;rev=1789653996&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wiki.murlstutz.ch/doku.php?id=programmieren:fortgeschritten:validierung:testing&amp;rev=1789568730&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wiki.murlstutz.ch/doku.php?id=programmieren:fortgeschritten:validierung&amp;rev=1789567784&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wiki.murlstutz.ch/doku.php?image=programmieren%3Afortgeschritten%3Avalidation.png&amp;ns=programmieren%3Afortgeschritten&amp;rev=1789567742&amp;tab_details=history&amp;media_do=diff&amp;do=media"/>
                <rdf:li rdf:resource="https://www.wiki.murlstutz.ch/doku.php?id=programmieren:grundlagen:datenbanken:databasede_defaults&amp;rev=1789483465&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wiki.murlstutz.ch/doku.php?id=programmieren:cakephp:translations&amp;rev=1789463674&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wiki.murlstutz.ch/doku.php?image=programmieren%3Acakephp%3Apoedit.png&amp;ns=programmieren%3Acakephp&amp;rev=1789463583&amp;tab_details=history&amp;media_do=diff&amp;do=media"/>
                <rdf:li rdf:resource="https://www.wiki.murlstutz.ch/doku.php?id=programmieren:html&amp;rev=1789136547&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wiki.murlstutz.ch/doku.php?id=programmieren:jenkins&amp;rev=1789135486&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wiki.murlstutz.ch/doku.php?image=programmieren%3Ajenkins.png&amp;ns=programmieren&amp;rev=1789135256&amp;tab_details=history&amp;media_do=diff&amp;do=media"/>
                <rdf:li rdf:resource="https://www.wiki.murlstutz.ch/doku.php?id=programmieren:php&amp;rev=1789048427&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wiki.murlstutz.ch/doku.php?id=programmieren:php:exceptions&amp;rev=1789048000&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wiki.murlstutz.ch/doku.php?id=programmieren:php:date_functions&amp;rev=1788962952&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://www.wiki.murlstutz.ch/lib/exe/fetch.php?media=wiki:dokuwiki.svg">
        <title>Lerndoku</title>
        <link>https://www.wiki.murlstutz.ch/</link>
        <url>https://www.wiki.murlstutz.ch/lib/exe/fetch.php?media=wiki:dokuwiki.svg</url>
    </image>
    <item rdf:about="https://www.wiki.murlstutz.ch/doku.php?id=programmieren:cakephp:controllers:start&amp;rev=1790345927&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-09-25T14:18:47+00:00</dc:date>
        <dc:creator>admin (admin@undisclosed.example.com)</dc:creator>
        <title>start - created</title>
        <link>https://www.wiki.murlstutz.ch/doku.php?id=programmieren:cakephp:controllers:start&amp;rev=1790345927&amp;do=diff</link>
        <description>Controllers

Controllers in CakePHP are basically what Controls the application, what gets rendered when, what data gets loaded where etc.

Its basically what puts the whole application together, all the business logic and stuff in the Model, all the Views and templates.</description>
    </item>
    <item rdf:about="https://www.wiki.murlstutz.ch/doku.php?id=programmieren:cakephp:controllers:view_vars&amp;rev=1790344547&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-09-25T13:55:47+00:00</dc:date>
        <dc:creator>admin (admin@undisclosed.example.com)</dc:creator>
        <title>view_vars - created</title>
        <link>https://www.wiki.murlstutz.ch/doku.php?id=programmieren:cakephp:controllers:view_vars&amp;rev=1790344547&amp;do=diff</link>
        <description>View Vars

You may ask, murl, what the helly are View Vars.

IIII got the answer (kinda)

View vars are basically variables that you want in your view (woaow), anything dynamic that you want displayed in your view, that ISN&#039;T able to be gotten by the view itsself, like a list of entries.</description>
    </item>
    <item rdf:about="https://www.wiki.murlstutz.ch/doku.php?id=programmieren:php:authentication&amp;rev=1790259003&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-09-24T14:10:03+00:00</dc:date>
        <dc:creator>admin (admin@undisclosed.example.com)</dc:creator>
        <title>authentication - created</title>
        <link>https://www.wiki.murlstutz.ch/doku.php?id=programmieren:php:authentication&amp;rev=1790259003&amp;do=diff</link>
        <description>Authentication

Authentication over PHP is already made easier by built in functions for hashing and comparing hashed passwords.

password_hash() hashes a password based on a given algorythm. This is used for saving passwords initially.

password_verify()</description>
    </item>
    <item rdf:about="https://www.wiki.murlstutz.ch/doku.php?id=programmieren:grundlagen:kontrollstrukturen&amp;rev=1790165626&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-09-23T12:13:46+00:00</dc:date>
        <dc:creator>admin (admin@undisclosed.example.com)</dc:creator>
        <title>kontrollstrukturen - control structures</title>
        <link>https://www.wiki.murlstutz.ch/doku.php?id=programmieren:grundlagen:kontrollstrukturen&amp;rev=1790165626&amp;do=diff</link>
        <description>Control Structures

Control structures in programming are like the structures that let you define how code should operate. Its basically the most important thing of programming languages.

For example the control structure if defines if the given case is true it will execute a certain code within it, if its not true it does nothing.</description>
    </item>
    <item rdf:about="https://www.wiki.murlstutz.ch/doku.php?id=programmieren:php:pass_by_reference&amp;rev=1790082677&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-09-22T13:11:17+00:00</dc:date>
        <dc:creator>admin (admin@undisclosed.example.com)</dc:creator>
        <title>pass_by_reference - created</title>
        <link>https://www.wiki.murlstutz.ch/doku.php?id=programmieren:php:pass_by_reference&amp;rev=1790082677&amp;do=diff</link>
        <description>Passing by Reference

Explained better by this PHP article.

Passing a parameter by reference is useful if you want to pass a parameter and edit it without having to return it.

You define a parameter with reference with the &amp; symbol like so:



$johnLennon = [
  &#039;alive&#039; =&gt; true,
  &#039;name&#039; =&gt; &#039;John Lennon&#039;,
];

function kill(array &amp;$toBeKilled): void 
{
  $toBeKilled[&#039;alive&#039;] = false;
}

kill($johnLennon);

// John Lennon now looks like this:
// $johnLennon = [
//   &#039;alive&#039; =&gt; false,
//   &#039;name&#039; …</description>
    </item>
    <item rdf:about="https://www.wiki.murlstutz.ch/doku.php?id=programmieren:cakephp:traits&amp;rev=1789741953&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-09-18T14:32:33+00:00</dc:date>
        <dc:creator>admin (admin@undisclosed.example.com)</dc:creator>
        <title>traits - multiple</title>
        <link>https://www.wiki.murlstutz.ch/doku.php?id=programmieren:cakephp:traits&amp;rev=1789741953&amp;do=diff</link>
        <description>Traits

Traits in PHP are an easy way to reuse common code that is used in multiple different places.

You can load it in a class by simply calling


use SomeRandomTrait;


You can do it for multiple traits.

This basically makes the traits code part of the class, so if the trait has a function called</description>
    </item>
    <item rdf:about="https://www.wiki.murlstutz.ch/doku.php?id=programmieren:cakephp:traits:type_aligned_assertions_trait&amp;rev=1789656582&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-09-17T14:49:42+00:00</dc:date>
        <dc:creator>admin (admin@undisclosed.example.com)</dc:creator>
        <title>type_aligned_assertions_trait - created</title>
        <link>https://www.wiki.murlstutz.ch/doku.php?id=programmieren:cakephp:traits:type_aligned_assertions_trait&amp;rev=1789656582&amp;do=diff</link>
        <description>Type Aligned Assetions Trait

I liked this so I wanted to make it an entry.

We made a trait for testing that aligns any iterable, most notably Entities, Collections and arrays, and its contents to a more comparable array, with dates casted to strings and BackedEnums to their values.</description>
    </item>
    <item rdf:about="https://www.wiki.murlstutz.ch/doku.php?id=programmieren:grundlagen:datentypen&amp;rev=1789653996&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-09-17T14:06:36+00:00</dc:date>
        <dc:creator>admin (admin@undisclosed.example.com)</dc:creator>
        <title>datentypen - [PHP] iterable</title>
        <link>https://www.wiki.murlstutz.ch/doku.php?id=programmieren:grundlagen:datentypen&amp;rev=1789653996&amp;do=diff</link>
        <description>Datentypen

PHP

	*  string. String of characters so basically just a text. Defined by &#039;&#039;.
	*  int. Whole numbers. Litterally just numbers without a comma.
	*  float. Decimal numbers. Litterally just numbers with a comma.
	*  bool. True or False value. Defined by true or false. Thingy can be truthy and falsy like 0 and 1.</description>
    </item>
    <item rdf:about="https://www.wiki.murlstutz.ch/doku.php?id=programmieren:fortgeschritten:validierung:testing&amp;rev=1789568730&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-09-16T14:25:30+00:00</dc:date>
        <dc:creator>admin (admin@undisclosed.example.com)</dc:creator>
        <title>testing - created</title>
        <link>https://www.wiki.murlstutz.ch/doku.php?id=programmieren:fortgeschritten:validierung:testing&amp;rev=1789568730&amp;do=diff</link>
        <description>Datavalidation Testing

The best way to test Datavalidation is to intentionally cause an error with a wrong value and check if the exception matches what you expect, and then to put in a valid value and check that no error is thrown.

The difficulty with it can be, if a field has alot of validations and you want to test the validation errors individually you&#039;ll either have to find a value that only causes one certain exception which can be difficult in alot of cases or ignore every other error e…</description>
    </item>
    <item rdf:about="https://www.wiki.murlstutz.ch/doku.php?id=programmieren:fortgeschritten:validierung&amp;rev=1789567784&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-09-16T14:09:44+00:00</dc:date>
        <dc:creator>admin (admin@undisclosed.example.com)</dc:creator>
        <title>validierung - created kinda</title>
        <link>https://www.wiki.murlstutz.ch/doku.php?id=programmieren:fortgeschritten:validierung&amp;rev=1789567784&amp;do=diff</link>
        <description>Datavalidation

Datavalidation is a very important component of an application that contains end user inputs.

It ensures that no malicious, weird or just plain wrong data reaches to the database, usually its also used to inform a user about what they did wrong so they can correctly enter their data.</description>
    </item>
    <item rdf:about="https://www.wiki.murlstutz.ch/doku.php?image=programmieren%3Afortgeschritten%3Avalidation.png&amp;ns=programmieren%3Afortgeschritten&amp;rev=1789567742&amp;tab_details=history&amp;media_do=diff&amp;do=media">
        <dc:format>text/html</dc:format>
        <dc:date>2026-09-16T14:09:02+00:00</dc:date>
        <dc:creator>admin (admin@undisclosed.example.com)</dc:creator>
        <title>validation.png - created</title>
        <link>https://www.wiki.murlstutz.ch/doku.php?image=programmieren%3Afortgeschritten%3Avalidation.png&amp;ns=programmieren%3Afortgeschritten&amp;rev=1789567742&amp;tab_details=history&amp;media_do=diff&amp;do=media</link>
        <description>&lt;img src=&quot;https://www.wiki.murlstutz.ch/lib/exe/fetch.php?w=500&amp;amp;h=500&amp;amp;tok=c0bca5&amp;amp;media=programmieren:fortgeschritten:validation.png&quot; alt=&quot;validation.png&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;500&quot; /&gt;</description>
    </item>
    <item rdf:about="https://www.wiki.murlstutz.ch/doku.php?id=programmieren:grundlagen:datenbanken:databasede_defaults&amp;rev=1789483465&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-09-15T14:44:25+00:00</dc:date>
        <dc:creator>admin (admin@undisclosed.example.com)</dc:creator>
        <title>databasede_defaults - created</title>
        <link>https://www.wiki.murlstutz.ch/doku.php?id=programmieren:grundlagen:datenbanken:databasede_defaults&amp;rev=1789483465&amp;do=diff</link>
        <description>Database Defaults

Database Defaults are a part of a column in a table, it defines the value that should be put in the database incase the value is not given by whatever is accessing it.

In most cases its null, null can mean different things tho based on if the column is nullable or not.</description>
    </item>
    <item rdf:about="https://www.wiki.murlstutz.ch/doku.php?id=programmieren:cakephp:translations&amp;rev=1789463674&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-09-15T09:14:34+00:00</dc:date>
        <dc:creator>admin (admin@undisclosed.example.com)</dc:creator>
        <title>translations - created</title>
        <link>https://www.wiki.murlstutz.ch/doku.php?id=programmieren:cakephp:translations&amp;rev=1789463674&amp;do=diff</link>
        <description>Translations

In CakePHP translations work with the integrated cakephp/i18n plugin. i18n stands for internationalization because there are 18 letters between the initial i and the ending n.

You define a to-be-translated text like so:


__dx(
    &#039;Admin&#039;,
    &#039;Tenant-form&#039;,
    &#039;The deadline in days after which a tenant can no longer cancel a policy. Negative values are before the validity start of a policy, positive ones are after.&#039;
),</description>
    </item>
    <item rdf:about="https://www.wiki.murlstutz.ch/doku.php?image=programmieren%3Acakephp%3Apoedit.png&amp;ns=programmieren%3Acakephp&amp;rev=1789463583&amp;tab_details=history&amp;media_do=diff&amp;do=media">
        <dc:format>text/html</dc:format>
        <dc:date>2026-09-15T09:13:03+00:00</dc:date>
        <dc:creator>admin (admin@undisclosed.example.com)</dc:creator>
        <title>poedit.png - created</title>
        <link>https://www.wiki.murlstutz.ch/doku.php?image=programmieren%3Acakephp%3Apoedit.png&amp;ns=programmieren%3Acakephp&amp;rev=1789463583&amp;tab_details=history&amp;media_do=diff&amp;do=media</link>
        <description>&lt;img src=&quot;https://www.wiki.murlstutz.ch/lib/exe/fetch.php?w=500&amp;amp;h=500&amp;amp;tok=7d5ba3&amp;amp;media=programmieren:cakephp:poedit.png&quot; alt=&quot;poedit.png&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;500&quot; /&gt;</description>
    </item>
    <item rdf:about="https://www.wiki.murlstutz.ch/doku.php?id=programmieren:html&amp;rev=1789136547&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-09-11T14:22:27+00:00</dc:date>
        <dc:creator>admin (admin@undisclosed.example.com)</dc:creator>
        <title>html - html fuh</title>
        <link>https://www.wiki.murlstutz.ch/doku.php?id=programmieren:html&amp;rev=1789136547&amp;do=diff</link>
        <description>HTML

HTML stands for Hypertext Markup Language is the standard Markup Language for documents that are made to be displayed in ANY web browser.

Its currently at version 5 and has become the one standard way for browsers to display things.

It was initially released in 1993 and has gradually become more popular since.</description>
    </item>
    <item rdf:about="https://www.wiki.murlstutz.ch/doku.php?id=programmieren:jenkins&amp;rev=1789135486&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-09-11T14:04:46+00:00</dc:date>
        <dc:creator>admin (admin@undisclosed.example.com)</dc:creator>
        <title>jenkins - created</title>
        <link>https://www.wiki.murlstutz.ch/doku.php?id=programmieren:jenkins&amp;rev=1789135486&amp;do=diff</link>
        <description>Jenkins

Jenkins is an automated tool/server used for various automated tasks related to building, testing and delivering software.

Here we mostly use it for the building and testing parts, it can be integrated into various systems too, for us GitLab, where it detects CS errors and outputs them in Merge requests.</description>
    </item>
    <item rdf:about="https://www.wiki.murlstutz.ch/doku.php?image=programmieren%3Ajenkins.png&amp;ns=programmieren&amp;rev=1789135256&amp;tab_details=history&amp;media_do=diff&amp;do=media">
        <dc:format>text/html</dc:format>
        <dc:date>2026-09-11T14:00:56+00:00</dc:date>
        <dc:creator>admin (admin@undisclosed.example.com)</dc:creator>
        <title>jenkins.png - created</title>
        <link>https://www.wiki.murlstutz.ch/doku.php?image=programmieren%3Ajenkins.png&amp;ns=programmieren&amp;rev=1789135256&amp;tab_details=history&amp;media_do=diff&amp;do=media</link>
        <description>&lt;img src=&quot;https://www.wiki.murlstutz.ch/lib/exe/fetch.php?w=500&amp;amp;h=500&amp;amp;tok=b2d2d8&amp;amp;media=programmieren:jenkins.png&quot; alt=&quot;jenkins.png&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;500&quot; /&gt;</description>
    </item>
    <item rdf:about="https://www.wiki.murlstutz.ch/doku.php?id=programmieren:php&amp;rev=1789048427&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-09-10T13:53:47+00:00</dc:date>
        <dc:creator>admin (admin@undisclosed.example.com)</dc:creator>
        <title>php - php some stuff</title>
        <link>https://www.wiki.murlstutz.ch/doku.php?id=programmieren:php&amp;rev=1789048427&amp;do=diff</link>
        <description>PHP

PHP is the programming language we mainly use at our job teehee.

It stands for “PHP Hypertext Preprocessor” (yes that acronym does include itsself).
It used to initially stand for “Personal Home Page Tools”, yes that would be PHPT but we ignore that pluh.</description>
    </item>
    <item rdf:about="https://www.wiki.murlstutz.ch/doku.php?id=programmieren:php:exceptions&amp;rev=1789048000&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-09-10T13:46:40+00:00</dc:date>
        <dc:creator>admin (admin@undisclosed.example.com)</dc:creator>
        <title>exceptions - created</title>
        <link>https://www.wiki.murlstutz.ch/doku.php?id=programmieren:php:exceptions&amp;rev=1789048000&amp;do=diff</link>
        <description>Exceptions

Exceptions are ways of telling the application, users or log (or wherever you read them out) that something went wrong and if you do it correctly, what went wrong.

Usually you can pass a message and a type of Exception.

In PHP it doesn&#039;t even HAVE TO be an Exception since an Exception is part of</description>
    </item>
    <item rdf:about="https://www.wiki.murlstutz.ch/doku.php?id=programmieren:php:date_functions&amp;rev=1788962952&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-09-09T14:09:12+00:00</dc:date>
        <dc:creator>admin (admin@undisclosed.example.com)</dc:creator>
        <title>date_functions - created</title>
        <link>https://www.wiki.murlstutz.ch/doku.php?id=programmieren:php:date_functions&amp;rev=1788962952&amp;do=diff</link>
        <description>Date functions

Like any good programming language PHP needs a way to handle dates. Theres loads of functions and ways that handle date in PHP.

Heres a list of few important functions:

	*  time() returns the current Unix timestamp
	*  date() retruns a timestamp in a given format, uses time() if no timestamp is given</description>
    </item>
</rdf:RDF>
