Hi Roger, rather than starting from scratch, I highly recommend <a href="https://www.drupal.org/project/console">https://www.drupal.org/project/console</a>. It is based on the same concepts that are available with Rails and other programming languages that have a code generator. It will help you get an idea what is &quot;correct&quot;.<div><br></div><div>To quote from the project documentation:</div><div><span style="color:rgb(51,51,51);font-family:&#39;Open Sans&#39;,&#39;Clear Sans&#39;,&#39;Helvetica Neue&#39;,Helvetica,Arial,sans-serif;font-size:16px;line-height:20.4799995422363px">&quot;The purpose of this project is to leverage the Symfony Console Component to provide a CLI tool to automate the creation of drupal 8 modules and other recurring tasks.&quot;</span><br><br><div class="gmail_quote">On Sat Jan 17 2015 at 22:03:59 Roger &lt;<a href="mailto:arelem@bigpond.com">arelem@bigpond.com</a>&gt; wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Learning how to create modules and forms I followed the tutorial exactly<br>
but get Page not found error.<br>
Also it seems the YAML syntax has changed within Drupal 8,<br>
Where<br>
|demo.demo:|<br>
|||path: &#39;/demo&#39;|<br>
|||defaults:|<br>
|||_content: &#39;\Drupal\demo\Controller\<u></u>DemoController::demo&#39;|<br>
|||_title: &#39;Demo&#39;|<br>
|||requirements:|<br>
|||_permission: &#39;access content&#39;<br>
<br>
is now-<br>
|<br>
|demo.demo:|<br>
|||path: &#39;/demo&#39;|<br>
|||defaults:|<br>
|||- content: &#39;\Drupal\demo\Controller\<u></u>DemoController::demo&#39;|<br>
|||- title: &#39;Demo&#39;<br>
and<br>
|<br>
|||requirements:|<br>
|||- permission: &#39;access content&#39;<br>
or any other permission causes an error when the caches are cleared.<br>
<br>
Can someone please advise what&#39;s going on here please?<br>
Thanks<br>
Roger<br>
|<br>
<br>
<br>
--<br>
[ Drupal support list | <a href="http://lists.drupal.org/" target="_blank">http://lists.drupal.org/</a> ]<br>
</blockquote></div></div>