<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:series="http://unfoldingneurons.com/"
	>

<channel>
	<title>Guggat emol Blog &#187; User-Modell für den Datenbankzugriff in CakePHP backen</title>
	<atom:link href="http://www.baldenhofer.eu/blog/tag/programmieren/feed" rel="self" type="application/rss+xml" />
	<link>http://www.baldenhofer.eu/blog</link>
	<description>Roland bloggt über IT, Programmieren und Linux</description>
	<lastBuildDate>Tue, 25 Oct 2011 22:53:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>User-Modell für den Datenbankzugriff in CakePHP backen</title>
		<link>http://www.baldenhofer.eu/blog/it/user-modell-fur-den-datenbankzugriff-in-cakephp-backen</link>
		<comments>http://www.baldenhofer.eu/blog/it/user-modell-fur-den-datenbankzugriff-in-cakephp-backen#comments</comments>
		<pubDate>Sun, 23 Oct 2011 22:49:40 +0000</pubDate>
		<dc:creator>Roland</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[cakephp]]></category>
		<category><![CDATA[model]]></category>

		<guid isPermaLink="false">http://www.baldenhofer.eu/blog/?p=2218</guid>
		<description><![CDATA[In CakePHP gibt es Konsoleapplikationen mit denen du ohne großen Aufwand Modelle, Controller und Views erstellen kannst. Für unsere Gewichtsapplikation werden wir zuerst die Modelle erstellen. Wechsle in das Verzeichnis /app der Gewichtsapplikation. Dort rufst du mit ../cake/console/cake bake die Bäckerei auf. Wie du sehen kannst, sind die Konsoleanwendungen von Cake im Verzeichnis /cake/console hinterlegt. [...]]]></description>
			<content:encoded><![CDATA[<p>In CakePHP gibt es Konsoleapplikationen mit denen du ohne großen Aufwand Modelle, Controller und Views erstellen kannst.<br />
Für unsere Gewichtsapplikation werden wir zuerst die Modelle erstellen.<br />
<a href="http://www.baldenhofer.eu/blog/wp-content/uploads/2011/10/modelle_anlegen.png"><img class="alignnone size-full wp-image-2219" title="modelle_anlegen" src="http://www.baldenhofer.eu/blog/wp-content/uploads/2011/10/modelle_anlegen.png" alt="Komponentenübersicht Modelle anlegen" width="696" height="873" /></a><br />
Wechsle in das Verzeichnis <strong>/app</strong> der Gewichtsapplikation.<br />
Dort rufst du mit <span class="“code“">../cake/console/cake bake</span> die Bäckerei auf.<br />
Wie du sehen kannst, sind die Konsoleanwendungen von Cake im Verzeichnis <strong>/cake/console</strong> hinterlegt. Schau einfach mal rein.<br />
Wenn du den Aufruf durchgeführt hast, erscheint folgende Auswahl:</p>
<pre class="“code“">Welcome to CakePHP v1.3.10 Console

---------------------------------------------------------------

App : app

Path: /home/roland/workspace/weightapplication/app

---------------------------------------------------------------

Interactive Bake Shell

---------------------------------------------------------------

[D]atabase Configuration

[M]odel

[V]iew

[C]ontroller

[P]roject

[F]ixture

[T]est case

[Q]uit

What would you like to Bake? (D/M/V/C/P/F/T/Q) 

&gt;</pre>
<p>Hier kannst du auswählen was du backen willst.<br />
Wir wollen zuerst unsere Modelle backen, also geben wir M ein.<br />
Die nächste Frage lautet ob wir unsere Modelle anhand der Definitionen der Default-Database-Connection oder der Test-Connection erstellen wollen.</p>
<pre class="“code“">&gt; M       

---------------------------------------------------------------

Bake Model

Path: /home/roland/workspace/weightapplication/app/models/

---------------------------------------------------------------

Use Database Config: (default/test) 

[default] &gt;</pre>
<p>Hier kannst du return drücken, da wir die default-Konfiguration nehmen wollen.<br />
Als nächstes werden die Tabellen, die derzeitig in der Datenbank definiert sind, angezeigt:</p>
<pre class="“code“">[default] &gt; 

Possible Models based on your current database:

1. User

2. Weight

Enter a number from the list above,

type in the name of another model, or 'q' to exit  

[q] &gt;</pre>
<p>Jetzt lassen wir die Modelle erstellen. Du gibst hierfür die 1 und 2 ein.<br />
Fangen wir also mit 1 an:</p>
<pre class="“code“">[q] &gt; 1   

Would you like to supply validation criteria 

for the fields in your model? (y/n) 

[y] &gt;</pre>
<p>Die Modell-Attribute können mit Standard-Validierungen überprüft werden.<br />
Wir wollen das der Name und die E-Mail Adresse korrekt eingegeben werden.<br />
Also sagen wir ja (return)<br />
Das erste Feld ist die id.<br />
Hier werden folgende Optionen angeboten:</p>
<pre class="“code“">[y] &gt; 

Field: id

Type: integer

---------------------------------------------------------------

Please select one of the following validation options:

---------------------------------------------------------------

1 - alphanumeric

2 - between

3 - blank

4 - boolean

5 - cc

6 - comparison

7 - custom

8 - date

9 - decimal

10 - email

11 - equalto

12 - extension

13 - inlist

14 - ip

15 - maxlength

16 - minlength

17 - money

18 - multiple

19 - notempty

20 - numeric

21 - phone

22 - postal

23 - range

24 - ssn

25 - time

26 - url

27 - userdefined

28 - uuid

29 - Do not do any validation on this field.

... or enter in a valid regex validation string.

[29] &gt;</pre>
<p>Mit 29 (also return) geben wir an, dass wir keine besondere Überprüfung für dieses Feld durchführen wollen.</p>
<p>Als nächstes wird das Feld name angezeigt.</p>
<pre class="“code“">[29] &gt; 

Field: name

Type: string

---------------------------------------------------------------

Please select one of the following validation options:

---------------------------------------------------------------

1 - alphanumeric

2 - between

3 - blank

4 - boolean

5 - cc

6 - comparison

7 - custom

8 - date

9 - decimal

10 - email

11 - equalto

12 - extension

13 - inlist

14 - ip

15 - maxlength

16 - minlength

17 - money

18 - multiple

19 - notempty

20 - numeric

21 - phone

22 - postal

23 - range

24 - ssn

25 - time

26 - url

27 - userdefined

28 - uuid

29 - Do not do any validation on this field.

... or enter in a valid regex validation string.

[19] &gt;</pre>
<p>Die Cake Console ist ziemlich clever und schlägt und notempty vor. Also machen wir das so.<br />
Als nächstes fragt Die Cake Console uns ob wir weitere Überprüfungen durchführen wollen. Hier können wir vorerst mit Return (also nein) weitergehen.</p>
<pre class="“code“">[n] &gt; 

Field: email

Type: string

---------------------------------------------------------------

Please select one of the following validation options:

---------------------------------------------------------------

1 - alphanumeric

2 - between

3 - blank

4 - boolean

5 - cc

6 - comparison

7 - custom

8 - date

9 - decimal

10 - email

11 - equalto

12 - extension

13 - inlist

14 - ip

15 - maxlength

16 - minlength

17 - money

18 - multiple

19 - notempty

20 - numeric

21 - phone

22 - postal

23 - range

24 - ssn

25 - time

26 - url

27 - userdefined

28 - uuid

29 - Do not do any validation on this field.

... or enter in a valid regex validation string.

[10] &gt;</pre>
<p>Das nächste Feld ist die E-Mail Adresse. Hier erkennt Cake Console dass wir eine valide E-Mail Adresse eingeben wollen (also irgendwas mit BLA@BLUB.LULL).<br />
Wir akzeptieren die 10.<br />
Die Frage, ob wir noch weitere Validierungen angeben wollen, beantworten wir diesmal mit y.<br />
Jetzt geben wir noch isUnique als Validierungsregel an. Damit wird erreicht, dass jede E-Mail Adresse im System einmalig ist.</p>
<pre class="“code“">[10] &gt; isUnique

Would you like to add another validation rule? (y/n) 

[n] &gt;</pre>
<p>Jetzt können wir wieder return drücken.</p>
<p>Das letzte Feld, mit zu überprüfenden Eigenschaften, ist das Passwort.<br />
Hier können wir z.B. eine Minimallänge vorgeben.</p>
<pre class="“code“">[19] &gt; 16

Would you like to add another validation rule? (y/n) 

[n] &gt;</pre>
<p>Die Beschreibung lassen wir optional.</p>
<pre class="“code“">[n] &gt; 

Field: description

Type: text

---------------------------------------------------------------

Please select one of the following validation options:

---------------------------------------------------------------

1 - alphanumeric

2 - between

3 - blank

4 - boolean

5 - cc

6 - comparison

7 - custom

8 - date

9 - decimal

10 - email

11 - equalto

12 - extension

13 - inlist

14 - ip

15 - maxlength

16 - minlength

17 - money

18 - multiple

19 - notempty

20 - numeric

21 - phone

22 - postal

23 - range

24 - ssn

25 - time

26 - url

27 - userdefined

28 - uuid

29 - Do not do any validation on this field.

... or enter in a valid regex validation string.

[29] &gt;</pre>
<p>Als nächstes werden wir gefragt ob wir Verknüpfungen zu anderen Modellen haben wollen.<br />
Hier sagen wir ja, denn wir wollen unsere Personen mit vielen Gewichtsangaben versehen.</p>
<pre class="“code“">[29] &gt; 

Would you like to define model associations

(hasMany, hasOne, belongsTo, etc.)? (y/n) 

[y] &gt;</pre>
<p>Wenn du return drückst wird die weights Tabelle angezeigt. Diese beinhaltet eine user_id und kann daher eine Relation zu unserer users-Tabelle haben.</p>
<pre class="“code“">[y] &gt; 

One moment while the associations are detected.

---------------------------------------------------------------

Please confirm the following associations:

---------------------------------------------------------------

User hasMany Weight? (y/n) 

[y] &gt;</pre>
<p>Wir sagen bei dieser Frage ja (return)</p>
<pre class="“code“">[y] &gt; 

Would you like to define some additional model associations? (y/n) 

[n] &gt;</pre>
<p>Hier bleiben wir bei nein.<br />
Als letztes wird uns angezeigt was wir da so zusammenkonfiguriert haben:</p>
<pre class="“code“">[n] &gt; 

---------------------------------------------------------------

The following Model will be created:

---------------------------------------------------------------

Name:       User

DB Table:   `users`

Validation: Array

(

    [name] =&gt; Array

        (

            [notempty] =&gt; notempty

        )

    [email] =&gt; Array

        (

            [email] =&gt; email

            [isUnique] =&gt; isUnique

        )

    [password] =&gt; Array

        (

            [minlength] =&gt; minlength

        )

)

Associations:

	User hasMany Weight

---------------------------------------------------------------

Look okay? (y/n) 

[y] &gt;</pre>
<p>Das sieht gut aus! Also sagen wir ja.</p>
<pre class="“code“">[y] &gt; 

Baking model class for User...

Creating file /home/roland/workspace/weightapplication/app/models/user.php

Wrote `/home/roland/workspace/weightapplication/app/models/user.php`

SimpleTest is not installed. Do you want to bake unit test files anyway? (y/n) 

[y] &gt;</pre>
<p>Wie du sehen kannst, wird das Modell user.php in das Verzeichnis /app/models/users.php geschrieben.<br />
Die Frage ob wir die Unit-Tests für unser Modell erstellen wollen, können wir mit ja beantworten. Dann können wir später mit SimpleTest alles durchtesten.</p>
<p>Jetzt wird alles fertiggestellt und wir kommen wieder zur Startseite.</p>
<pre class="“code“">[y] &gt; 

You can download SimpleTest from http://simpletest.org

Baking test fixture for User...

Creating file /home/roland/workspace/weightapplication/app/tests/fixtures/user_fixture.php

Wrote `/home/roland/workspace/weightapplication/app/tests/fixtures/user_fixture.php`

Bake is detecting possible fixtures..

Creating file /home/roland/workspace/weightapplication/app/tests/cases/models/user.test.php

Wrote `/home/roland/workspace/weightapplication/app/tests/cases/models/user.test.php`

---------------------------------------------------------------

Interactive Bake Shell

---------------------------------------------------------------

[D]atabase Configuration

[M]odel

[V]iew

[C]ontroller

[P]roject

[F]ixture

[T]est case

[Q]uit

What would you like to Bake? (D/M/V/C/P/F/T/Q) 

&gt;</pre>
<p>Hier brechen wir mit Q ab und schauen uns zuerst unser Modell an.<br />
Gehe zur Validierung des Passworts und ändere die Validierung so ab, dass wir eine Minimallänge von sechs Zeichen vorsehen:</p>
<pre class="“code“">		'password' =&gt; array(

			'minlength' =&gt; array(

				'rule' =&gt; array('minlength', 6),

				//'message' =&gt; 'Your custom message here',

				//'allowEmpty' =&gt; false,

				//'required' =&gt; false,

				//'last' =&gt; false, // Stop validation after this rule

				//'on' =&gt; 'create', // Limit validation to 'create' or              'update' operations

			),</pre>
<p>Alle anderen vorgefertigten Definitionen lassen wir vorerst einfach mal so stehen.<br />
Das Modell ist jetzt erst einmal ausreichend konfiguriert.</p>
<hr /><h2>Ähnliche Beiträge</h2><ul></ul><hr /><small>www.baldenhofer.eu © seit 2009 <br />
Dieser Feed kommt vom <a href="http://www.baldenhofer.eu/blog">Guggat emol Blog</a>, viel Spa&#223; beim Lesen! &#220;ber  Links zu Artikeln freuen wir uns, jedoch bitte bindet nicht einfach unsere Inhalte in eure Seite ein, danke. Hinweis für Feedleser: Beiträge, die Quellcode enthalten sind auf der Webseite meist besser lesbar, als in einem Feed-Reader. 
<br /> 4e3744397ab2a417f811b29573bcbef4)</small>]]></content:encoded>
			<wfw:commentRss>http://www.baldenhofer.eu/blog/it/user-modell-fur-den-datenbankzugriff-in-cakephp-backen/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gewichtsapplikation Datenbanktabellen anlegen</title>
		<link>http://www.baldenhofer.eu/blog/it/gewichtsapplikation-datenbanktabellen-anlegen</link>
		<comments>http://www.baldenhofer.eu/blog/it/gewichtsapplikation-datenbanktabellen-anlegen#comments</comments>
		<pubDate>Sat, 22 Oct 2011 06:49:33 +0000</pubDate>
		<dc:creator>Roland</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[cakephp]]></category>
		<category><![CDATA[tabellen]]></category>

		<guid isPermaLink="false">http://www.baldenhofer.eu/blog/?p=2213</guid>
		<description><![CDATA[Hurra! Gestern hatten wir Go-Live und jetzt kann ich die Arbeitszeiten wieder etwas herunterschrauben. Damit kann ich endlich wieder ein bisschen an der CakePHP Grundlagen-Applikation Gewichtsapplikation weiterbasteln Heute werden wir die Datenbanktabellen für die Applikation anlegen. Wir benötigen zwei Tabellen. Eine Tabelle, in der die Namen der einzelnen Teilnehmer und eine Beschreibung abgelegt werden und [...]]]></description>
			<content:encoded><![CDATA[<p>Hurra!<br />
Gestern hatten wir Go-Live und jetzt kann ich die Arbeitszeiten wieder etwas herunterschrauben. Damit kann ich endlich wieder ein bisschen an der CakePHP Grundlagen-Applikation Gewichtsapplikation weiterbasteln <img src='http://www.baldenhofer.eu/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
Heute werden wir die Datenbanktabellen für die Applikation anlegen.<br />
<a href="http://www.baldenhofer.eu/blog/wp-content/uploads/2011/10/tabellenkonfiguration.png"><img class="alignnone size-full wp-image-2215" title="tabellenkonfiguration" src="http://www.baldenhofer.eu/blog/wp-content/uploads/2011/10/tabellenkonfiguration.png" alt="Komponentenansicht der Tabellenkonfiguration" width="696" height="873" /></a><br />
Wir benötigen zwei Tabellen. Eine Tabelle, in der die Namen der einzelnen Teilnehmer und eine Beschreibung abgelegt werden und eine Tabelle in der die Gewichtsangaben hinterlegt sind.<br />
Die beiden Tabellen sehen irgendwie wie folgt aus:<br />
<a href="http://www.baldenhofer.eu/blog/wp-content/uploads/2011/10/tabellen.png"><img class="alignnone size-full wp-image-2216" title="tabellen" src="http://www.baldenhofer.eu/blog/wp-content/uploads/2011/10/tabellen.png" alt="Die Tabellen und ihre Relationen" width="299" height="151" /></a><br />
Um die Datenbank zu konfigurieren habe ich ein kleines SQL-Script geschrieben:</p>
<pre class="“code“"># This SQL-commands create the tables for weightapplication.
drop database weightapplication;
create database weightapplication;
use weightapplication;
create table users (  id          int(11) not null auto_increment primary key \
                    , name        varchar(255) not null \
                    , email       varchar(255) not null \
                    , password    varchar(32) not null \
                    , description text null \
                   );
create table weights (  id          int(11) not null auto_increment primary key \
                      , user_id     int(11) not null
                      , weight      float not null \
                      , created     timestamp NOT NULL DEFAULT now() \
                     );</pre>
<p>Dieses Script habe ich unter dem Namen <strong>create_database.sql</strong> im Verzeichnis <strong>/app/config</strong> abgelegt.<br />
Jetzt wechsle in das Verzeichnis <strong>/app/config</strong> und führe den Befehl <span class="“code“">mysql -uroot -p &lt; create_database.sh</span> aus. Du wirst nach dem Passwort gefragt, dass du für deinen MySQL-Server benötigst.<br />
Das Script löscht eine zuvor angelegte Datenbank, legt die weightapplication Datenbank an und erstellt die Tabellen für Personen (users) und die Gewichtsangaben.</p>
<hr /><h2>Ähnliche Beiträge</h2><ul></ul><hr /><small>www.baldenhofer.eu © seit 2009 <br />
Dieser Feed kommt vom <a href="http://www.baldenhofer.eu/blog">Guggat emol Blog</a>, viel Spa&#223; beim Lesen! &#220;ber  Links zu Artikeln freuen wir uns, jedoch bitte bindet nicht einfach unsere Inhalte in eure Seite ein, danke. Hinweis für Feedleser: Beiträge, die Quellcode enthalten sind auf der Webseite meist besser lesbar, als in einem Feed-Reader. 
<br /> 4e3744397ab2a417f811b29573bcbef4)</small>]]></content:encoded>
			<wfw:commentRss>http://www.baldenhofer.eu/blog/it/gewichtsapplikation-datenbanktabellen-anlegen/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Entwicklungsrechner Setup</title>
		<link>http://www.baldenhofer.eu/blog/it/programmieren/entwicklungsrechner-setup</link>
		<comments>http://www.baldenhofer.eu/blog/it/programmieren/entwicklungsrechner-setup#comments</comments>
		<pubDate>Wed, 03 Aug 2011 22:41:38 +0000</pubDate>
		<dc:creator>Roland</dc:creator>
				<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[cakephp]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.baldenhofer.eu/blog/?p=2144</guid>
		<description><![CDATA[Ich habe zwar schon beschrieben wie du Eclipse für PHP installieren kannst, aber irgendwie fehlt jetzt noch die ganze Installation von Apache, MySQL und PHP. Das muss ich schnell mal nachholen. Heute beschreibe ich also die Installation der in der Komponentenübersicht rot markierten Elemente. Mit Synaptic, dem Paketmanager von Ubuntu, ist die Installation kinderleicht. PHP [...]]]></description>
			<content:encoded><![CDATA[<p>Ich habe zwar schon beschrieben wie du Eclipse für PHP installieren kannst, aber irgendwie fehlt jetzt noch die ganze Installation von Apache, MySQL und PHP.<br />
Das muss ich schnell mal nachholen.<br />
Heute beschreibe ich also die Installation der in der Komponentenübersicht rot markierten Elemente.</p>
<p><a href="http://www.baldenhofer.eu/blog/wp-content/uploads/2011/08/Komponentenuebersicht-PHP-Apache-MySQL-Installation.png"><img class="alignnone size-full wp-image-2145" title="Komponentenuebersicht-PHP-Apache-MySQL-Installation" src="http://www.baldenhofer.eu/blog/wp-content/uploads/2011/08/Komponentenuebersicht-PHP-Apache-MySQL-Installation.png" alt="" width="696" height="873" /></a></p>
<p>Mit Synaptic, dem Paketmanager von Ubuntu, ist die Installation kinderleicht.</p>
<h3>PHP Installation</h3>
<p>Ich habe hier einen Screenshot meiner installierten PHP-Komponenten gemacht.</p>
<p><a href="http://www.baldenhofer.eu/blog/wp-content/uploads/2011/08/php-installation.png"><img class="alignnone size-large wp-image-2146" title="php-installation" src="http://www.baldenhofer.eu/blog/wp-content/uploads/2011/08/php-installation-1024x254.png" alt="PHP-Installation" width="1024" height="254" /></a></p>
<p>Wähle bitte php-5 und php5-mysql aus. Die restlichen Pakete müssten dann mit angezogen werden.</p>
<h3>MySQL Installation</h3>
<p><a href="http://www.baldenhofer.eu/blog/wp-content/uploads/2011/08/mysql-installation.png"><img class="alignnone size-large wp-image-2147" title="mysql-installation" src="http://www.baldenhofer.eu/blog/wp-content/uploads/2011/08/mysql-installation-1024x337.png" alt="MySQL Installation" width="1024" height="337" /></a></p>
<p>Wenn du mysql-server auswählst, wird der Rest entsprechend mit angezogen.<br />
Bei der Installation wirst du nach einem root-Passwort gefragt. Dies ist dein Root-Passwort für den DB-Server. Wähle eins und merke es dir. In der Demoinstallation werden wir zuerst den User root und sein Passwort verwenden. Wenn du das später ändern willst, ist das ein Artikel für sich <img src='http://www.baldenhofer.eu/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h3>Apache2 Installation</h3>
<p>Auch das ist kinderleicht.<br />
Hier meine installierten Pakete:</p>
<p><a href="http://www.baldenhofer.eu/blog/wp-content/uploads/2011/08/apache-installation.png"><img class="alignnone size-large wp-image-2148" title="apache-installation" src="http://www.baldenhofer.eu/blog/wp-content/uploads/2011/08/apache-installation-1024x374.png" alt="Apache Installation" width="1024" height="374" /></a><br />
Wenn du das Paket apache2 auswählst, sollte eigentlich alles von alleine laufen.</p>
<p>Nach der Installation dieser Pakete können wir uns wieder um die eigentliche Applikationsentwicklung kümmern.<br />
Juchhu! Drei Komponenten sind beschrieben. Das geht doch voran gelle? <img src='http://www.baldenhofer.eu/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<hr /><h2>Ähnliche Beiträge</h2><ul></ul><hr /><small>www.baldenhofer.eu © seit 2009 <br />
Dieser Feed kommt vom <a href="http://www.baldenhofer.eu/blog">Guggat emol Blog</a>, viel Spa&#223; beim Lesen! &#220;ber  Links zu Artikeln freuen wir uns, jedoch bitte bindet nicht einfach unsere Inhalte in eure Seite ein, danke. Hinweis für Feedleser: Beiträge, die Quellcode enthalten sind auf der Webseite meist besser lesbar, als in einem Feed-Reader. 
<br /> 4e3744397ab2a417f811b29573bcbef4)</small>]]></content:encoded>
			<wfw:commentRss>http://www.baldenhofer.eu/blog/it/programmieren/entwicklungsrechner-setup/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Komponentenübersicht für Gewichtsapplikation</title>
		<link>http://www.baldenhofer.eu/blog/it/programmieren/komponentenubersicht-fur-gewichtsapplikation</link>
		<comments>http://www.baldenhofer.eu/blog/it/programmieren/komponentenubersicht-fur-gewichtsapplikation#comments</comments>
		<pubDate>Wed, 03 Aug 2011 10:41:23 +0000</pubDate>
		<dc:creator>Roland</dc:creator>
				<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[cakephp]]></category>

		<guid isPermaLink="false">http://www.baldenhofer.eu/blog/?p=2141</guid>
		<description><![CDATA[Bisher habe ich für die Gewichtsapplikation im Artikel Reload mit CakePHP zur Applikation die Vision beschrieben, die ich umsetzen will. Danach habe ich die  Anwendungsfälle für Personen und Gewicht (und den vergessenen Anwendungsfall) aufgelistet. Damit will ich erreichen, dass wir tatsächlich verstehen was wir nach Abschluss der Entwicklung wirklich bekommen werden. Weiterhin habe ich die [...]]]></description>
			<content:encoded><![CDATA[<p>Bisher habe ich für die Gewichtsapplikation im Artikel <a href="http://www.baldenhofer.eu/blog/it/programmieren/reload-mit-cakephp-zur-applikation">Reload mit CakePHP zur Applikation </a>die Vision beschrieben, die ich umsetzen will.<br />
Danach habe ich die  <a href="http://www.baldenhofer.eu/blog/it/programmieren/gewichtsapplikation-anwendungsfaelle-person-verwalten">Anwendungsfälle für Personen</a> und <a href="http://www.baldenhofer.eu/blog/it/programmieren/gewichtsapplikation-anwendungsfaelle-gewicht-verwalten">Gewicht</a> (<a href="http://www.baldenhofer.eu/blog/it/programmieren/hups-habe-einen-anwendungsfall-vergessen">und den vergessenen Anwendungsfall</a>) aufgelistet. Damit will ich erreichen, dass wir tatsächlich verstehen was wir nach Abschluss der Entwicklung wirklich bekommen werden.<br />
Weiterhin habe ich die <a href="http://www.baldenhofer.eu/blog/guggat_emol/akteure-fuer-die-gewichtsapplikation">Akteure</a> aufgelistet, die mit dieser Applikation kommunizieren.<br />
Und dann bin ich gleich eingestiegen und habe erklärt wie die <a href="http://www.baldenhofer.eu/blog/it/programmieren/entwicklungsumgebungs-setup-fur-die-gewichsapplikation-eclipse-setup">PHP-Entwicklungsumgebung für Eclipse</a> aussehen soll, habe <a href="http://www.baldenhofer.eu/blog/it/programmieren/entwicklungsumgebungs-setup-fur-die-gewichsapplikation-cakephp-grundinstallation">CakePHP heruntergeladen</a> und die <a href="http://www.baldenhofer.eu/blog/it/programmieren/gewichsapplikation-konfigurationsdatei-core-php-anpassen">config.php</a> erläutert.<br />
Wenn ihr jetzt schon den Überblick verloren habt kann ich euch gut verstehen.<br />
Es fehlt ein Übersichtsdiagramm das die zu installierenden und konfigurierenden Elemente darstellt.<br />
Das liefere ich hiermit nach:<br />
<a href="http://www.baldenhofer.eu/blog/wp-content/uploads/2011/08/Komponentenuebersicht.png"><img class="alignnone size-full wp-image-2142" title="Komponentenübersicht" src="http://www.baldenhofer.eu/blog/wp-content/uploads/2011/08/Komponentenuebersicht.png" alt="" width="696" height="873" /></a><br />
Ich habe alle Komponenten, die ich bisher beschrieben habe, grün eingefärbt. Komponenten, an denen ich gerade dran bin, habe ich gelb eingefärbt. Im Moment sind das die Artikel in diesem Blog.<br />
In dem Diagramm findest du folgende Komponenten:</p>
<ul>
<li>Ubuntu-Entwicklungsrechner<br />
Darauf entwickle ich die Gewichtsapplikation.</li>
<li>www.baldenhofer.eu/blog<br />
(Rat mal selber <img src='http://www.baldenhofer.eu/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ) Wie du kommst nicht drauf? Hier dokumentiere ich die Gewichtsapplikation mit Hilfe von Blog-Artikeln</li>
<li>Apache Webserver<br />
Dieser Webserver beheimatet die Sourcen unserer Applikation.</li>
<li>Eclipe PHP Entwicklungsumgebung<br />
Habe ich schon beschrieben. Hiermit versuche ich die Monstarapplikation umzusetzen <img src='http://www.baldenhofer.eu/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
<li>Enterprise Architect<br />
Mit diesem Werkzeug zeichne ich die lustigen Diagramme. Bisher habe ich die Anwendungsfälle, Akteure und die Komponentenübersicht aufgezeichnet. Vielleicht darf ich später noch ein paar Aktivitätendiagramme oder so zeichnen. Im Moment, glaube ich, müsste das so reichen um diese Applikation sinnvoll beschreiben zu können. Die Klassen werde ich noch aufzeichnen, damit wir sehen wie alles zusammenhängt. Das Tool brauchst du nicht selbst installieren. Die Doku findest du ja hier im Blog.</li>
<li>MySQL Datenbank Server<br />
Beinhaltet unsere Datenbank für die Gewichtsapplikation.</li>
<li>PHP Interpreter<br />
Wir bauen eine PHP Applikation (liegt vielleicht daran, dass CakePHP ein PHP Framework ist <img src='http://www.baldenhofer.eu/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ) Deshalb muss auf unserem Rechner ein PHP Interpreter für Apache konfiguriert werden.</li>
<li>Webbrowser<br />
Auf der Entwicklermaschine muss ein Webbrowser verfügbar sein, damit wir unsere lokale Webapplikation überhaupt verwenden können. Darauf gehe ich nicht näher ein. Falls du tatsächlich keinen (aktuellen) Webbrowser auf deiner Maschine hast, installiere einfach einen und fertig.</li>
<li>/etc/hosts<br />
In der Entwicklungsumgebung haben wir (normalerweise) keinen eigenen Domain Name Server. Wir werden unsere Rechner-IP verwenden um auf unsere Lokale Webserver-Umgebung die weightapplication routen zu können.Damit erreichen wir, dass wir mit unserem lokal auf der Entwicklungsumgebung installierten Webbrowser unsere Webapplikation verwenden können.</li>
<li>/etc/apache2/sites-available<br />
Hier werden wir unsere weightapplication eintragen damit diese vom Webserver überhaupt gefunden werden kann.</li>
<li>/etc/apache2/sites-enabled<br />
Bei Ubuntu / Debian kann hier festgelegt werden, welche Webapplikationen überhaupt angezeigt werden.</li>
<li>WORKSPACE/weightapplication<br />
Beinhaltet die meisten Dateien die zu unserer Webapplikation gehören. Die Dateien, die nicht in diesem Ordner liegen, sind Konfigurationsdateien für den jeweiligen Server.</li>
<li>Application-Configuration<br />
Hier sammele ich alle Dateien, die für den Betrieb einer CakePHP-Webapplikation konfiguriert werden müssen. Bisher habe ich die /app/config/core.php beschrieben.</li>
<li>/app/config/database.php<br />
Hier werden die Datenbank-Zugangsdaten für unsere Applikation konfiguriert. Wie das geht erläutere ich noch in einem eigenen Artikel.</li>
<li>/app/tmp<br />
Hier finden sich alle temporären Dateien. Ich werde noch ein wenig ausführlicher darauf eingehen.</li>
<li>/app/models<br />
CakePHP verwendet in erster Linie das Model View Controller (MVC) Pattern. Die Modelle (wie z.B. Person und Weight) werden wir hier ablegen.</li>
<li>/app/controllers<br />
Hier werden wir die Controller unserer Gewichtsapplikation ablegen.</li>
<li>/app/views<br />
Und damit wir auch was sehen können, werden wir hier alle Ansichten programmieren.</li>
<li>CakePHP<br />
Habe ich schon im Artikel <a title="Permanent Link: Entwicklungsumgebungs-Setup für die Gewichsapplikation CakePHP Grundinstallation" href="../it/programmieren/entwicklungsumgebungs-setup-fur-die-gewichsapplikation-cakephp-grundinstallation" rel="bookmark">Entwicklungsumgebungs-Setup für die Gewichsapplikation CakePHP Grundinstallation</a> beschrieben wie wir das herunterladen und verwenden können.</li>
</ul>
<p>So, jetzt weiß ich wenigstens was ich noch alles zu dokumentieren habe und ihr könnt euch hoffentlich ein besseres Bild davon machen, was es alles braucht um eine Webapplikation in Betrieb zu nehmen.<br />
In nächster Zeit werde ich diese Komponentenübersicht immer wieder zeigen und die Komponente, die in dem jeweiligen Artikel beschrieben wird, entsprechend rot markieren.<br />
Damit werden die Artikel zwar etwas länger aber du kannst schnell erkennen wo ich gerade herumfummle.</p>
<hr /><h2>Ähnliche Beiträge</h2><ul></ul><hr /><small>www.baldenhofer.eu © seit 2009 <br />
Dieser Feed kommt vom <a href="http://www.baldenhofer.eu/blog">Guggat emol Blog</a>, viel Spa&#223; beim Lesen! &#220;ber  Links zu Artikeln freuen wir uns, jedoch bitte bindet nicht einfach unsere Inhalte in eure Seite ein, danke. Hinweis für Feedleser: Beiträge, die Quellcode enthalten sind auf der Webseite meist besser lesbar, als in einem Feed-Reader. 
<br /> 4e3744397ab2a417f811b29573bcbef4)</small>]]></content:encoded>
			<wfw:commentRss>http://www.baldenhofer.eu/blog/it/programmieren/komponentenubersicht-fur-gewichtsapplikation/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wenn Firefox die Warnung &#8220;Die URL ist ungültig und kann nicht geladen werden&#8221; generiert</title>
		<link>http://www.baldenhofer.eu/blog/it/programmieren/wenn-firefox-die-warnung-die-url-ist-ungultig-und-kann-nicht-geladen-werden-generiert</link>
		<comments>http://www.baldenhofer.eu/blog/it/programmieren/wenn-firefox-die-warnung-die-url-ist-ungultig-und-kann-nicht-geladen-werden-generiert#comments</comments>
		<pubDate>Thu, 28 Jul 2011 12:21:16 +0000</pubDate>
		<dc:creator>Roland</dc:creator>
				<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[drag&drop]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[Lösung]]></category>
		<category><![CDATA[warnung]]></category>

		<guid isPermaLink="false">http://www.baldenhofer.eu/blog/?p=2132</guid>
		<description><![CDATA[Wir hatten beim Drag&#38;Drop im JavaScript bei unserem Scrumboard das Problem gehabt, dass immer beim Verschieben die folgende Warnung ausgegeben wurde: Das geschah nur beim Firefox 4 und 5. Lösung Im Event-Handler hatten wir ursprünglich folgende Zeile eingetragen: e.dataTransfer.setData("Text", "js_draggedItem: "); + this.innerHTML) Wenn du den &#8220;Text&#8221; CamelCase mässig schreibst, dann kommt die Warnung. Wenn [...]]]></description>
			<content:encoded><![CDATA[<p>Wir hatten beim Drag&amp;Drop im JavaScript bei unserem <a href="http://scrum.miradlokit.org/">Scrumboard </a>das Problem gehabt, dass immer beim Verschieben die folgende Warnung ausgegeben wurde:</p>
<p><a href="http://www.baldenhofer.eu/blog/wp-content/uploads/2011/07/drag_and_drop_firefox5_warnung_text.png"><img class="alignnone size-full wp-image-2133" title="drag_and_drop_firefox5_warnung_text" src="http://www.baldenhofer.eu/blog/wp-content/uploads/2011/07/drag_and_drop_firefox5_warnung_text.png" alt="Drag and Drop Warnung im Firefox 4 und 5" width="431" height="138" /></a></p>
<p>Das geschah nur beim Firefox 4 und 5.</p>
<h3>Lösung</h3>
<p>Im Event-Handler hatten wir ursprünglich folgende Zeile eingetragen:</p>
<pre class="code">e.dataTransfer.setData("Text", "js_draggedItem: "); + this.innerHTML)</pre>
<p>Wenn du den &#8220;Text&#8221; CamelCase mässig schreibst, dann kommt die Warnung.</p>
<p>Wenn du dies umstellst auf:</p>
<pre class="code">e.dataTransfer.setData("TEXT", "js_draggedItem: "); + this.innerHTML)</pre>
<p>dann wird keine Warnung mehr geschrieben.</p>
<p>Mit CamelCase (Text) versucht der Firefox ein Redirect auf den dahinterliegenden Text zu machen.</p>
<p>Das ist irgendwie doof aber er macht es halt <img src='http://www.baldenhofer.eu/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>setData(FORMAT, DATA) darf also keine Groß-Kleinschreibung beinhalten.</p>
<hr /><h2>Ähnliche Beiträge</h2><ul></ul><hr /><small>www.baldenhofer.eu © seit 2009 <br />
Dieser Feed kommt vom <a href="http://www.baldenhofer.eu/blog">Guggat emol Blog</a>, viel Spa&#223; beim Lesen! &#220;ber  Links zu Artikeln freuen wir uns, jedoch bitte bindet nicht einfach unsere Inhalte in eure Seite ein, danke. Hinweis für Feedleser: Beiträge, die Quellcode enthalten sind auf der Webseite meist besser lesbar, als in einem Feed-Reader. 
<br /> 4e3744397ab2a417f811b29573bcbef4)</small>]]></content:encoded>
			<wfw:commentRss>http://www.baldenhofer.eu/blog/it/programmieren/wenn-firefox-die-warnung-die-url-ist-ungultig-und-kann-nicht-geladen-werden-generiert/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gewichtsapplikation-Konfigurationsdatei core.php anpassen</title>
		<link>http://www.baldenhofer.eu/blog/it/programmieren/gewichsapplikation-konfigurationsdatei-core-php-anpassen</link>
		<comments>http://www.baldenhofer.eu/blog/it/programmieren/gewichsapplikation-konfigurationsdatei-core-php-anpassen#comments</comments>
		<pubDate>Tue, 26 Jul 2011 22:10:44 +0000</pubDate>
		<dc:creator>Roland</dc:creator>
				<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[cakephp]]></category>
		<category><![CDATA[konfiguration]]></category>

		<guid isPermaLink="false">http://www.baldenhofer.eu/blog/?p=2130</guid>
		<description><![CDATA[Für unsere Gewichtsapplikation müssen wir einige Konfigurationen vornehmen, damit das System überhaupt richtig funktionieren kann. Zuerst kümmern wir uns um die core.php Konfigurationsdatei. Du findest sie im Verzeichnis WORKSPACE/weightapplication/app/config wobei WORKSPACE bei mir z.B. /home/roland/workspace lautet. Die core.php stellt Konfigurationsmöglichkeiten für die zu erstellende Applikation bereit.. Sie ist im Prinzip super beschrieben, manchmal ist es [...]]]></description>
			<content:encoded><![CDATA[<p>Für unsere Gewichtsapplikation müssen wir einige Konfigurationen vornehmen, damit das System überhaupt richtig funktionieren kann.<br />
Zuerst kümmern wir uns um die core.php Konfigurationsdatei. Du findest sie im Verzeichnis <strong>WORKSPACE/weightapplication/app/config</strong> wobei <strong>WORKSPACE</strong> bei mir z.B. /<strong>home/roland/workspace</strong> lautet.<br />
Die <strong>core.php</strong> stellt Konfigurationsmöglichkeiten für die zu erstellende Applikation bereit.. Sie ist im Prinzip super beschrieben, manchmal ist es jedoch einfacher wenn man die Beschreibung nochmals anders formuliert präsentiert bekommt.<br />
Ich gehe sie mal von oben nach unten durch.</p>
<h3>configure::write(&#8216;debug&#8217;, DEBUG_LEVEL)</h3>
<p>Hier kannst du einstellen, wie viele Debug-Meldungen du sehen willst.<br />
Während der Entwicklung ist es sinnvoll diesen Debu-Level so hoch wie möglich einzustellen.<br />
Denn du willst ja sehen, wenn irgendwo eine Variable nicht gesetzt ist oder eine Warnung generiert wird.<br />
Der Debug-Level 2 ist für die Entwicklung gut geeignet. Er zeigt dir SQL-Zugriffe, Notice-Meldungen, Warnungen und natürlich Errors.<br />
Wenn du dein Layout gestalten willst, empfiehlt sich dieser Level jedoch nicht. Du solltest ihn dann auf 0 oder 1 heruntersetzen. Dann bleiben die SQL-Zugriffe verborgen.<br />
Da wir zuerst „nur“ programmieren werden, ist für uns der Debug-Level 2 für die Entwicklungsumgebung die passende Wahl.</p>
<pre class="“code“">/**
 * CakePHP Debug Level:
 *
 * Production Mode:
 * 	0: No error messages, errors, or warnings shown. Flash messages redirect.
 *
 * Development Mode:
 * 	1: Errors and warnings shown, model caches refreshed, flash messages halted.
 * 	2: As in 1, but also with full debug messages and SQL output.
 *
 * In production mode, flash messages redirect after a time interval.
 * In development mode, you need to click the flash message to continue.
 */
    Configure::write('debug', 2);</pre>
<p>Meistens möchte ich den Development-Code ohne Anpassung in die Produktion wuchten.<br />
Deshalb modifiziere ich das Definieren des Log-Levels ein wenig:</p>
<pre class="“code“">if(     empty($_SERVER['SERVER_ADDR'])
    || (strpos($_SERVER['SERVER_ADDR'], '192.168.') === 0)
    || (strpos($_SERVER['SERVER_ADDR'], '127.0.') === 0)
   ){
    Configure::write('debug', 2);
}else{
    Configure::write('debug', 0);
}</pre>
<p>Jetzt wird jedesmal wenn ich mit einem lokalen Server arbeite der Entwicklungs-Debug-Level gesetzt. Ansonsten der Produktionsdebuglevel. Wenn du deinen Debuglevel auf diese Weise einstellen willst, musst du natürlich deine eigene IP-Adresse auslesen.<br />
Die findest du in der $_SERVER Variable. Mit print_r($_SERVER); kannst du dir die Variablen ausgeben lassen.</p>
<h3>Log-Level für tmp/*.log Dateien</h3>
<p>CakePHP schreibt die Debug-Informationen auch in Log-Dateien, wenn du dies zulässt. Ich bin froh, dass damit auch während des Betriebs auf Fehler reagiert werden kann. Falls du mal eine hochfrequentierte Monsterapplikation erstellt hast, solltest du darüber nachdenken ob du dir den Luxus von sauberen Fehlermeldungen leisten kannst. Unsere Gewichts-Applikation wird wohl kaum ein neues Facebook und deshalb glaube ich, können wir die Debug-Meldungen auch in der Produktion mitlaufen lassen.<br />
Du siehst hier zwei Einträge (Configrue::write(&#8216;log&#8217; , LEVEL) und configure::write(&#8216;log&#8217;, true)<br />
Die Standardkonfiguration (log, true) reicht uns vorerst aus. Du kannst gerne mit den Logleveln herumspielen und sehen was CakePHP alles schreibt. Die Log-Dateien findest du unter /app/tmp/logs.</p>
<pre class="“code“">/**
 * CakePHP Log Level:
 *
 * In case of Production Mode CakePHP gives you the possibility to continue logging errors.
 *
 * The following parameters can be used:
 *  Boolean: Set true/false to activate/deactivate logging
 *    Configure::write('log', true);
 *
 *  Integer: Use built-in PHP constants to set the error level (see error_reporting)
 *    Configure::write('log', E_ERROR | E_WARNING);
 *    Configure::write('log', E_ALL ^ E_NOTICE);
 */
	Configure::write('log', true);</pre>
<p>Weiter unten findest du in der config.php noch folgenden Eintrag:</p>
<pre class="“code“">/**
 * Defines the default error type when using the log() function. Used for
 * differentiating error logging and debugging. Currently PHP supports LOG_DEBUG.
 */
	define('LOG_ERROR', 2);</pre>
<p>Hier wird festgelegt welche Log-Levels ausgegeben werden sollen. Mit 2 wird festgelegt, dass Notice, Warning und Error geschrieben wird. Ich würde das so stehen lassen.</p>
<p>Encoding lassen wir auf utf8 stehen (App.encoding)</p>
<h3>Admin Routing</h3>
<p>Wir wollen, dass unsere Administratoren eine andere Oberfläche und andere Funktionen erhalten wie Besucher. Deshalb schalten wir das Admin-Routing frei.</p>
<pre class="“code“">/**
 * Uncomment the define below to use CakePHP prefix routes.
 *
 * The value of the define determines the names of the routes
 * and their associated controller actions:
 *
 * Set to an array of prefixes you want to use in your application. Use for
 * admin or other prefixed routes.
 *
 * 	Routing.prefixes = array('admin', 'manager');
 *
 * Enables:
 *	`admin_index()` and `/admin/controller/index`
 *	`manager_index()` and `/manager/controller/index`
 *
 * [Note Routing.admin is deprecated in 1.3.  Use Routing.prefixes instead]
 */
Configure::write('Routing.prefixes', array('admin'));</pre>
<p>Du kannst auch mehrere Routings eintragen, wie beispielsweise admin für Administratoren und manager für Management. Wir belassen es bei admin.</p>
<h3>Session Handling (Session.save)</h3>
<p>Mit den Sessions werden wir viel zu tun haben wenn wie CakePHP Applikationen bauen. Die Sessions erlauben es uns, Anwender einloggen zu lassen und wenn sie zu lange inaktiv sind wieder auszuloggen.</p>
<pre class="“code“">/**
 * The preferred session handling method. Valid values:
 *
 * 'php'	 		Uses settings defined in your php.ini.
 * 'cake'		Saves session files in CakePHP's /tmp directory.
 * 'database'	Uses CakePHP's database sessions.
 *
 * To define a custom session handler, save it at /app/config/.php.
 * Set the value of 'Session.save' to  to utilize it in CakePHP.
 *
 * To use database sessions, run the app/config/schema/sessions.php schema using
 * the cake shell command: cake schema create Sessions
 *
 */
	Configure::write('Session.save', 'php');</pre>
<p>Ich lasse dies meist auf dem Standard stehen. Wenn du nicht ewig rumsuchen willst, kannst du auch auf &#8216;cake&#8217; stellen. Dann kannst du die Session-Daten im /app/tmp auslesen.<br />
Die Datenbank-Session ist auch cool, denn dann werden die Sessions nicht in Dateien sondern in der Datenbank abgelegt. Dazu benötigst du jedoch noch ein entsprechendes Schema in der Datenbank. Für die erste CakePHP-Anwendung finde ich das etwas übertrieben. Also nehmen wir den Standard, mit &#8216;php&#8217;.<br />
Die weitere Konfigurationen (&#8216;Session.model&#8217;, &#8216;Session.table&#8217; und &#8216;Session.database&#8217;) verwenden wir vorerst nicht, da wir ja keine Datenbank-Sessions verwenden. Also lassen wir die auskommentiert stehen.<br />
Die Sessions müssen zwischen dem Server und dem Client ausgetauscht werden. Das wird über Cookies erfolgen. Der Name des Cookies sollte nur alpanumerische Zeichen beinhalten. Im Standardfall steht hier CAKEPHP. Wir können ja mal unseren Cookie umbenennen und WEIGHTAPPLICATION verwenden? Dann finden wir ihn auch einfacher im Browser-Cookie Cache. Wenn du das nicht willst, ist es nicht wichtig. CAKEPHP tut genausogut. Außer wenn du mehrere CakePHP Applikationen verwendest. Dann kann der Browser (oder du selber beim Debuggen) ein wenig durcheinander kommen <img src='http://www.baldenhofer.eu/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<pre class="“code“">/**
 * The name of CakePHP's session cookie.
 *
 * Note the guidelines for Session names states: "The session name references
 * the session id in cookies and URLs. It should contain only alphanumeric
 * characters."
 * @link http://php.net/session_name
 */
    // Wir wollen einen eigenen Cookie
    // Configure::write('Session.cookie', 'CAKEPHP');
    Configure::write('Session.cookie', 'WEIGHTAPPLICATION');</pre>
<p>Mit Session.timeout kannst du festlegen, wie lange ein Anwender sich nicht mehr am Server melden kann bevor die Session abläuft. Wenn du oft Timeouts hast, z.B. weil du große Texte schreiben lässt, dann solltest du hier höher gehen.<br />
Um ein bisschen Gewicht einzugeben sollten zwei Minuten jedoch ausreichend sein. Wenn die Person zu langsam ist um in zwei Minuten drei Zahlen einzutippen sollte sie zuerst Sport treiben und dann erst die Applikation verwenden <img src='http://www.baldenhofer.eu/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<pre class="“code“">/**
 * Session time out time (in seconds).
 * Actual value depends on 'Security.level' setting.
 */
	Configure::write('Session.timeout', '120');</pre>
<p>Session.start und Session.checkAgent lassen wir stehen wie sie sind. Wir wollen, dass die Sessions automatisch starten und wir verwenden aktuelle Browser.</p>
<h3>Security Level einstellen</h3>
<p>Die folgenden zwei Einträge kümmern sich um die Sicherheitseinstellung.</p>
<pre class="“code“">/**
 * The level of CakePHP security. The session timeout time defined
 * in 'Session.timeout' is multiplied according to the settings here.
 * Valid values:
 *
 * 'high'   Session timeout in 'Session.timeout' x 10
 * 'medium' Session timeout in 'Session.timeout' x 100
 * 'low'    Session timeout in 'Session.timeout' x 300
 *
 * CakePHP session IDs are also regenerated between requests if
 * 'Security.level' is set to 'high'.
 */
	Configure::write('Security.level', 'medium');

/**
 * A random string used in security hashing methods.
 */
	Configure::write('Security.salt', 'DYhG93b0qyJfIxJulchenubAlIWwvniR2G0FgaC9mi');

/**
 * A random numeric string (digits only) used to encrypt/decrypt strings.
 */
	Configure::write('Security.cipherSeed', '768593096432442496749683645');</pre>
<p>Security.level auf medium ist ausreichend. Den Security.salt und Security.cipherSeed veränderst du bitte. Dieser wird für die Generierung von Passwörtern und anderen hashing-Methoden eingesetzt. Damit wird es für die bösen Angreifer etwas schwerer unsere Daten auszulesen.<br />
Ich habe die beiden hier direkt schon mal verändert. Aber bitte nehme eigenen Werte.</p>
<h3>Caching-Probleme für .js, .css und images umgehen</h3>
<p>Manchmal funktioniert eine Webapplikation nicht richtig, da die Browser und Proxies die .js, .css und images zwischenspeichern. Das ist bei statischen Seiten vernünftig, da damit weniger Daten ausgetauscht werden müssen.<br />
Wir sind vorerst vorsichtig und wollen dass sichergestellt wird dass Änderungen ankommen.<br />
Deshalb schalten wir Asset.timestamp auf force.</p>
<pre class="“code“">/**
 * Apply timestamps with the last modified time to static assets (js, css, images).
 * Will append a querystring parameter containing the time the file was modified. This is
 * useful for invalidating browser caches.
 *
 * Set to `true` to apply timestamps, when debug = 0, or set to 'force' to always enable
 * timestamping.
 */
    Configure::write('Asset.timestamp', 'force');</pre>
<p>Die Komprimiererei Asset.filter.css und Asset.filter.js lassen wir im Moment ausgeschalten. Falls du Performanceprobleme bei unserer Gewichtsapplikation zu spüren bekommst, dann kannst du hiermit etwas spielen.</p>
<p>Access Control Lists (ACL) werden wir für die erste Applikation auch nicht verwenden. ACL ist cool, verrenkt dir jedoch am Anfang ein wenig das Gehirn. Wir haben das in miradlokit aktiviert, aber da machen wir auch ein wenig mehr als in der Gewichtsapplikation notwendig ist.</p>
<h3>Zeitzone einstellen</h3>
<p>Ich schalte hier die Europa/Berlin Zeit frei. UTC sollte auch passen&#8230;</p>
<pre class="“code“">/**
 * If you are on PHP 5.3 uncomment this line and correct your server timezone
 * to fix the date &amp; time related errors.
 */
//date_default_timezone_set('UTC');
date_default_timezone_set('Europe/Berlin')</pre>
<p>Die restlichen Einträge lassen wir so stehen wie sie definiert sind. Dort wird definiert wie die Caching-Verhalten von CakePHP sein sollen. Uns reicht hier das Standardverhalten locker aus.</p>
<hr /><h2>Ähnliche Beiträge</h2><ul></ul><hr /><small>www.baldenhofer.eu © seit 2009 <br />
Dieser Feed kommt vom <a href="http://www.baldenhofer.eu/blog">Guggat emol Blog</a>, viel Spa&#223; beim Lesen! &#220;ber  Links zu Artikeln freuen wir uns, jedoch bitte bindet nicht einfach unsere Inhalte in eure Seite ein, danke. Hinweis für Feedleser: Beiträge, die Quellcode enthalten sind auf der Webseite meist besser lesbar, als in einem Feed-Reader. 
<br /> 4e3744397ab2a417f811b29573bcbef4)</small>]]></content:encoded>
			<wfw:commentRss>http://www.baldenhofer.eu/blog/it/programmieren/gewichsapplikation-konfigurationsdatei-core-php-anpassen/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Entwicklungsumgebungs-Setup für die Gewichsapplikation CakePHP Grundinstallation</title>
		<link>http://www.baldenhofer.eu/blog/it/programmieren/entwicklungsumgebungs-setup-fur-die-gewichsapplikation-cakephp-grundinstallation</link>
		<comments>http://www.baldenhofer.eu/blog/it/programmieren/entwicklungsumgebungs-setup-fur-die-gewichsapplikation-cakephp-grundinstallation#comments</comments>
		<pubDate>Tue, 26 Jul 2011 13:09:54 +0000</pubDate>
		<dc:creator>Roland</dc:creator>
				<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[cakephp]]></category>

		<guid isPermaLink="false">http://www.baldenhofer.eu/blog/?p=2126</guid>
		<description><![CDATA[Ich möchte eine CakePHP-Applikation erstellen, also müssen wir in unser weightapplication Projekt die hierfür notwendigen Quellen einspielen. Mein PHP-Projekt wurde in /home/roland/workspace/weightapplication angelegt. Als nächstes musst du CakePHP von cakephp.org herunterladen. Verwende bitte die Stable-Version. Ich habe hier die Version 1.3.10 heruntergeladen (war gerade die aktuelle Stable-Version). Das CakePHP Archiv beinhaltet die folgende Struktur: CakePHP [...]]]></description>
			<content:encoded><![CDATA[<p>Ich möchte eine CakePHP-Applikation erstellen, also müssen wir in unser weightapplication Projekt die hierfür notwendigen Quellen einspielen.<br />
Mein<a href="http://www.baldenhofer.eu/blog/it/programmieren/entwicklungsumgebungs-setup-fur-die-gewichsapplikation-eclipse-setup"> PHP-Projekt</a> wurde in <strong>/home/roland/workspace/weightapplication</strong> angelegt.<br />
Als nächstes musst du CakePHP von <a href="http://cakephp.org/">cakephp.org </a>herunterladen. Verwende bitte die <a href="http://github.com/cakephp/cakephp/downloads">Stable-Version</a>. Ich habe hier die Version 1.3.10 heruntergeladen (war gerade die aktuelle Stable-Version).<br />
Das CakePHP Archiv beinhaltet die folgende Struktur:<br />
<a href="http://www.baldenhofer.eu/blog/wp-content/uploads/2011/07/cakephp-struktur.png"><img class="alignnone size-full wp-image-2127" title="cakephp-struktur" src="http://www.baldenhofer.eu/blog/wp-content/uploads/2011/07/cakephp-struktur.png" alt="cakePHP Struktur" width="602" height="510" /></a><br />
CakePHP liefert einen Basisordner (z.B.  /cakephp-cakephp-b0abad1/) und darin die Verzeichnisse<br />
/app<br />
/cake<br />
/plugins<br />
/vendors<br />
Entpacke dieses zip und kopiere den Inhalt des Basisordners (also /app, /cake usw.) in das weightapplication Projekt. Bei mir werden die Dateien also nach /home/roland/workspace/weightapplication geschrieben.<br />
Wenn du die Dateien kopiert hast, gehe in die Eclipse Perspektive PHP und wähle die PHP Explorer Sicht aus. Mit F5 kannst du die Ansicht aktualisieren.<br />
Im PHP Explorer sollte folgende Dateien und Verzeichnisse erscheinen, kann natürlich je nach CakePHP-Version ein klein wenig variieren.<br />
<a href="http://www.baldenhofer.eu/blog/wp-content/uploads/2011/07/weightapplication.png"><img class="alignnone size-full wp-image-2128" title="weightapplication" src="http://www.baldenhofer.eu/blog/wp-content/uploads/2011/07/weightapplication.png" alt="Weightapplication" width="423" height="275" /></a><br />
Damit haben wir das CakePHP-Framework zur Verfügung.<br />
Als nächstes werden wir uns um die Konfiguration kümmern.</p>
<p style="margin-bottom: 0cm;">Ich möchte eine CakePHP-Applikation erstellen, also müssen wir in unser weightapplication Projekt die hierfür notwendigen Quellen einspielen.</p>
<p style="margin-bottom: 0cm;">Mein PHP-Projekt wurde in /home/roland/workspace/weightapplication angelegt.</p>
<p style="margin-bottom: 0cm;">Als nächstes musst du CakePHP von cake.org herunterladen. Verwende bitte die Stable-Version. Ich habe hier die Version 1.3.10 heruntergeladen (war gerade die aktuelle Stable-Version).</p>
<p style="margin-bottom: 0cm;">Das CakePHP Archiv beinhaltet die folgende Struktur:</p>
<p style="margin-bottom: 0cm;">BILD cakephpstruktur</p>
<p style="margin-bottom: 0cm;">CakePHP liefert einen Basisordner (z.B. /cakephp-cakephp-b0abad1/) und darin die Verzeichnisse</p>
<p style="margin-bottom: 0cm;">/app</p>
<p style="margin-bottom: 0cm;">/cake</p>
<p style="margin-bottom: 0cm;">/plugins</p>
<p style="margin-bottom: 0cm;">/vendors</p>
<p style="margin-bottom: 0cm;">Entpacke dieses zip und kopiere den Inhalt des Basisordners (also /app, /cake usw.) in das weightapplication Projekt. Bei mir werden die Dateien also nach /home/roland/workspace/weightapplication geschrieben.</p>
<p style="margin-bottom: 0cm;">Wenn du die Dateien kopiert hast, gehe in die Eclipse Perspektive PHP und wähle die PHP Explorer Sicht aus. Mit F5 kannst du die Ansicht aktualisieren.</p>
<p style="margin-bottom: 0cm;">Im PHP Explorer sollte folgende Dateien und Verzeichnisse erscheinen, kann natürlich je nach CakePHP-Version ein klein wenig variieren.</p>
<p style="margin-bottom: 0cm;">BILD weightapplication</p>
<p style="margin-bottom: 0cm;">Damit haben wir das CakePHP-Framework zur Verfügung.</p>
<p style="margin-bottom: 0cm;">Als nächstes werden wir uns um die Konfiguration kümmern.</p>
<p style="margin-bottom: 0cm;">
<hr /><h2>Ähnliche Beiträge</h2><ul></ul><hr /><small>www.baldenhofer.eu © seit 2009 <br />
Dieser Feed kommt vom <a href="http://www.baldenhofer.eu/blog">Guggat emol Blog</a>, viel Spa&#223; beim Lesen! &#220;ber  Links zu Artikeln freuen wir uns, jedoch bitte bindet nicht einfach unsere Inhalte in eure Seite ein, danke. Hinweis für Feedleser: Beiträge, die Quellcode enthalten sind auf der Webseite meist besser lesbar, als in einem Feed-Reader. 
<br /> 4e3744397ab2a417f811b29573bcbef4)</small>]]></content:encoded>
			<wfw:commentRss>http://www.baldenhofer.eu/blog/it/programmieren/entwicklungsumgebungs-setup-fur-die-gewichsapplikation-cakephp-grundinstallation/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Entwicklungsumgebungs-Setup für die Gewichsapplikation, Eclipse Setup</title>
		<link>http://www.baldenhofer.eu/blog/it/programmieren/entwicklungsumgebungs-setup-fur-die-gewichsapplikation-eclipse-setup</link>
		<comments>http://www.baldenhofer.eu/blog/it/programmieren/entwicklungsumgebungs-setup-fur-die-gewichsapplikation-eclipse-setup#comments</comments>
		<pubDate>Mon, 25 Jul 2011 07:39:38 +0000</pubDate>
		<dc:creator>Roland</dc:creator>
				<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[cakephp]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.baldenhofer.eu/blog/?p=2116</guid>
		<description><![CDATA[Ich habe mit den Anwendungsfällen (Personen Anwendungsfälle, Gewichts-Anwendungsfälle) beschrieben was ich mit der Gewichtsapplikation realisieren will. Mittlerweile wissen wir also schon deutlich genauer was wir alles umsetzen wollen. Damit wir mit CakePHP die Applikation erstellen können, müssen wir uns nun unsere Entwicklungsumgebung einrichten. Ich beschreibe hier die Entwicklungsumgebungs-Konfiguration für Apache-Webserver, MySQL, CakePHP 1.3 und Eclipse [...]]]></description>
			<content:encoded><![CDATA[<p>Ich habe mit den Anwendungsfällen (<a href="http://www.baldenhofer.eu/blog/it/programmieren/gewichtsapplikation-anwendungsfaelle-person-verwalten">Personen Anwendungsfälle</a>, <a href="http://www.baldenhofer.eu/blog/it/programmieren/gewichtsapplikation-anwendungsfaelle-gewicht-verwalten">Gewichts-Anwendungsfälle</a>) beschrieben was ich mit der Gewichtsapplikation realisieren will. Mittlerweile wissen wir also schon deutlich genauer was wir alles umsetzen wollen.<br />
Damit wir mit <a href="http://cakephp.org/">CakePHP</a> die Applikation erstellen können, müssen wir uns nun unsere Entwicklungsumgebung einrichten.<br />
Ich beschreibe hier die Entwicklungsumgebungs-Konfiguration für <a href="http://httpd.apache.org/">Apache-Webserver</a>, <a href="http://www.mysql.de/">MySQL</a>, CakePHP 1.3 und <a href="http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/helios/R/eclipse-php-helios-linux-gtk-x86_64.tar.gz">Eclipse Helios für PHP Entwickler.</a> Das verwendete Betriebssystem ist ein aktuelles Lubuntu (Ubuntu-Distribution).<br />
Falls ihr Windows verwendet, oder andere Linux Distributionen, werden sich mindestens die Einträge in /etc/apache2 variieren. Ihr findet aber im Netz genügend Anleitungen wie die jeweiligen Konfigurationen anzuwenden sind.</p>
<p>Eclipse Grundinstallation<br />
Ich habe Eclipse for <a href="http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/helios/R/eclipse-php-helios-linux-gtk-x86_64.tar.gz">PHP Developers </a>heruntergeladen und installiert. Dieses Bundle ist nicht das neue Indigo Eclipse. Wenn ihr das haben wollt, dann müsst ihr PHP als Plugin hinzufügen.<br />
Das von mir verwendete Bundle ist für PHP Entwickler zugeschnitten und kann leicht installiert werden.</p>
<div id="attachment_2118" class="wp-caption alignnone" style="width: 575px"><a href="http://www.baldenhofer.eu/blog/wp-content/uploads/2011/07/eclipse_about1.png"><img class="size-full wp-image-2118" title="eclipse_about" src="http://www.baldenhofer.eu/blog/wp-content/uploads/2011/07/eclipse_about1.png" alt="" width="565" height="333" /></a><p class="wp-caption-text">Eclipse About</p></div>
<p>Wenn ihr die PHP-Erweiterungen nicht über das Bundle in eure bestehende Eclipse Umgebung einbinden wollt, müsst ihr mindestens WTP (Eclipse Webtools Platform) und die PHP Erweiterungen herunterladen und installieren. Das kann eventuell zu Problemen (Abhängigkeiten zwischen Paketen) führen. Ich empfehle daher, einfach das Bundle zu verwenden. Eventuell könnt ihr ja alles in einer virtuellen Maschine betreiben, dann versaut ihr nicht eure Standardkonfiguration.</p>
<h3>Wechseln in die PHP-Perspektive</h3>
<p>Nachdem Eclipse soweit installiert ist, könnt ihr in die Perspektive für PHP Entwicklung wechseln:<br />
<a href="http://www.baldenhofer.eu/blog/wp-content/uploads/2011/07/perspektive_php.png"><img class="alignnone size-full wp-image-2119" title="perspektive_php" src="http://www.baldenhofer.eu/blog/wp-content/uploads/2011/07/perspektive_php.png" alt="Auswahl PHP Perspektive" width="414" height="329" /></a><br />
Wenn du in diese Perspektive gewechselt hast, sollte die Oberfläche ähnlich wie in dem hier abgebildeten Screenshot aussehen.</p>
<p><a href="http://www.baldenhofer.eu/blog/wp-content/uploads/2011/07/php_perspektive.png"><img class="alignnone size-full wp-image-2120" title="php_perspektive" src="http://www.baldenhofer.eu/blog/wp-content/uploads/2011/07/php_perspektive.png" alt="PHP Perspektive" width="965" height="147" /></a></p>
<p>Auf der linken Seite befinden sich diverse Tabs mit denen die PHP-Dateien, und deren Struktur, unterschiedlich betrachtet werden können.</p>
<ul>
<li>Der PHP Explorer stellt die PHP-Dateien und die PHP-Projektstruktur dar..</li>
</ul>
<ul>
<li>Die Type-Hierachie verwende ich in diesem Kontext vorerst nicht.</li>
</ul>
<ul>
<li>Outline zeigt dir die Struktur einer Klasse an und bietet eine schnelle Möglichkeit auf die darin befindlichen Attribute und Methoden zugreifen zu können. Beispielsweise habe ich hier eine Klasse geöffnet und du kannst die Struktur der Klasse gut erkennen.</li>
</ul>
<p><a href="http://www.baldenhofer.eu/blog/wp-content/uploads/2011/07/outline1.png"><img class="alignnone size-large wp-image-2122" title="outline" src="http://www.baldenhofer.eu/blog/wp-content/uploads/2011/07/outline1-1024x350.png" alt="Outline View" width="1024" height="350" /></a></p>
<ul>
<li>In Navigation werden nicht nur die PHP-Dateien sondern auch versteckte Dateien wie .htaccess usw. dargestellt. Wenn du also eine Datei im PHP Explorer nicht sehen  kannst, dann verwende den Navigation Tab.</li>
</ul>
<h3>Kurz zur Erinnerung</h3>
<p>Eclipse ist ein Framework dass unzählige Programmiersprachen und Editoren bereitstellt. Eine Perspektive erlaubt es, die Ansichten entsprechend zu konfigurieren, dass z.B. die *.php Dateien sinnvoll angezeigt werden.<br />
In der PHP-Ansicht werden also die Werkzeuge dargestellt, die ihr für die PHP Entwicklung benötigt. Dagegen werden in der Subversion-Ansicht nur die Werkzeuge dargestellt, die für die Verwaltung von Subversion benötigt werden und bei der Java-Ansicht entsprechend die Java-bezogenen Werkzeuge.<br />
So kann mit einem grundsätzlich identischen Vorgehen auf unterschiedliche Bedürfnisse eingegangen werden.</p>
<h3>Neue Projekt (weightapplication) anlegen</h3>
<p>Wir sind im PHP Explorer und können mit der rechten Maustaste das Kontextmenü neues Projekt auswählen. (<strong>New-&gt;PHP Project</strong>)</p>
<p>Über <strong>File-&gt;New-&gt;PHP Project</strong> kommst du dort auch hin.<a href="http://www.baldenhofer.eu/blog/wp-content/uploads/2011/07/eclipse_project_setup.png"><img class="alignnone size-full wp-image-2123" title="eclipse_project_setup" src="http://www.baldenhofer.eu/blog/wp-content/uploads/2011/07/eclipse_project_setup.png" alt="Eclipse Project Setup" width="613" height="744" /></a></p>
<p>&nbsp;</p>
<p>Der Name des neuen Projekts soll <strong>weightapplication</strong> lauten. Ich verzichte hier auf Unterstriche oder Bindestriche (also nicht weight_application) da dies unter Umständen zu Konfigurationsschwierigkeiten in anderen Bereichen (Apache usw.) führen kann. Natürlich kannst du auch einen anderen Namen nehmen, für dieses Beispielprojekt sollte das jedoch so ausreichen.<br />
Du kannst sehen, dass ich in meinem <strong>/home/roland</strong> Verzeichnis einen Unterordner <strong>workspace</strong> habe. Hier liegen all meine Eclipse Projekte drin. Falls du eine andere Struktur vorsiehst, kannst du das entsprechend ändern.</p>
<p>Jetzt haben wir eine Entwicklungsumgebung und ein neues, leeres PHP-Projekt in dem wir unsere Gewichtsapplikation einschreiben können.</p>
<hr /><h2>Ähnliche Beiträge</h2><ul></ul><hr /><small>www.baldenhofer.eu © seit 2009 <br />
Dieser Feed kommt vom <a href="http://www.baldenhofer.eu/blog">Guggat emol Blog</a>, viel Spa&#223; beim Lesen! &#220;ber  Links zu Artikeln freuen wir uns, jedoch bitte bindet nicht einfach unsere Inhalte in eure Seite ein, danke. Hinweis für Feedleser: Beiträge, die Quellcode enthalten sind auf der Webseite meist besser lesbar, als in einem Feed-Reader. 
<br /> 4e3744397ab2a417f811b29573bcbef4)</small>]]></content:encoded>
			<wfw:commentRss>http://www.baldenhofer.eu/blog/it/programmieren/entwicklungsumgebungs-setup-fur-die-gewichsapplikation-eclipse-setup/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Hups! Habe einen Anwendungsfall vergessen</title>
		<link>http://www.baldenhofer.eu/blog/it/programmieren/hups-habe-einen-anwendungsfall-vergessen</link>
		<comments>http://www.baldenhofer.eu/blog/it/programmieren/hups-habe-einen-anwendungsfall-vergessen#comments</comments>
		<pubDate>Sat, 23 Jul 2011 22:50:58 +0000</pubDate>
		<dc:creator>Roland</dc:creator>
				<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Anforderung]]></category>
		<category><![CDATA[cakephp]]></category>

		<guid isPermaLink="false">http://www.baldenhofer.eu/blog/?p=2111</guid>
		<description><![CDATA[Beim Schreiben der Gewichts-Anwendungsfälle ist mir aufgefallen, dass bei den Personen-Anwendungsfällen noch ein Anwendungsfall fehlt. Wir sollten für unsere statistischen Auswertungen noch die Grösse der Person aufnehmen. Das soll vom Registrierten Anwender selbst durchführbar sein. Das Projekt hat noch nicht richtig begonnen und schon fange ich mit Änderungen an Naja, das ist im Projektbusiness ja [...]]]></description>
			<content:encoded><![CDATA[<p>Beim Schreiben der <a href="http://www.baldenhofer.eu/blog/it/programmieren/gewichtsapplikation-anwendungsfaelle-gewicht-verwalten">Gewichts-Anwendungsfälle</a> ist mir aufgefallen, dass bei den <a href="http://www.baldenhofer.eu/blog/it/programmieren/gewichtsapplikation-anwendungsfaelle-person-verwalten">Personen-Anwendungsfällen </a>noch ein Anwendungsfall fehlt.</p>
<p>Wir sollten für unsere statistischen Auswertungen noch die Grösse der Person aufnehmen.<br />
Das soll vom Registrierten Anwender selbst durchführbar sein.</p>
<p>Das Projekt hat noch nicht richtig begonnen und schon fange ich mit Änderungen an <img src='http://www.baldenhofer.eu/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Naja, das ist im Projektbusiness ja so üblich gelle?</p>
<p>Also hier also die ergänzten Anwendungsfälle:</p>
<div id="attachment_2112" class="wp-caption alignnone" style="width: 391px"><img class="size-full wp-image-2112" title="anwendungsfaelle_person_verwalten" src="http://www.baldenhofer.eu/blog/wp-content/uploads/2011/07/anwendungsfaelle_person_verwalten1.png" alt="Erweiterte Personenanwendungsfälle" width="381" height="571" /><p class="wp-caption-text">Erweiterte Personenanwendungsfälle</p></div>
<p>Der neue Anwendungsfall lautet <strong>Details zu Person verändern</strong>. Hier kann ein Registrierter Anwender die Grössenangabe eingeben.</p>
<h3>Details zu Person verändern</h3>
<p><strong>Akteur</strong></p>
<p>Registrierter Anwender</p>
<p><strong>Vorbedingung</strong></p>
<p>Der Registrierte Anwender ist angemeldet.</p>
<p><strong>Ablauf</strong></p>
<ul>
<li>Der User wählt den Link <strong>Details zu Person verändern </strong> aus.</li>
<li>Seine persönlichen Daten werden angezeigt.</li>
<li>Er kann das Feld <strong>Grösse in cm </strong>ausfüllen</li>
<li>Weiter kann er den Namen ändern</li>
<li>Nach dem Ändern drückt er speichern</li>
<li>Das System überprüft ob die Felder korrekt befüllt sind und speichert die Daten ab.</li>
</ul>
<p><strong>Nachbedingung</strong></p>
<p>Die Daten sind gespeichert worden.</p>
<p>So, das sollte fürs Erste reichen.</p>
<p>Als nächstes gehen wir her und generieren die dazugehörige Applikation.</p>
<hr /><h2>Ähnliche Beiträge</h2><ul></ul><hr /><small>www.baldenhofer.eu © seit 2009 <br />
Dieser Feed kommt vom <a href="http://www.baldenhofer.eu/blog">Guggat emol Blog</a>, viel Spa&#223; beim Lesen! &#220;ber  Links zu Artikeln freuen wir uns, jedoch bitte bindet nicht einfach unsere Inhalte in eure Seite ein, danke. Hinweis für Feedleser: Beiträge, die Quellcode enthalten sind auf der Webseite meist besser lesbar, als in einem Feed-Reader. 
<br /> 4e3744397ab2a417f811b29573bcbef4)</small>]]></content:encoded>
			<wfw:commentRss>http://www.baldenhofer.eu/blog/it/programmieren/hups-habe-einen-anwendungsfall-vergessen/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gewichtsapplikation Anwendungsfälle Gewicht verwalten</title>
		<link>http://www.baldenhofer.eu/blog/it/programmieren/gewichtsapplikation-anwendungsfaelle-gewicht-verwalten</link>
		<comments>http://www.baldenhofer.eu/blog/it/programmieren/gewichtsapplikation-anwendungsfaelle-gewicht-verwalten#comments</comments>
		<pubDate>Thu, 21 Jul 2011 22:31:10 +0000</pubDate>
		<dc:creator>Roland</dc:creator>
				<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Anwendungsfall]]></category>
		<category><![CDATA[cakephp]]></category>

		<guid isPermaLink="false">http://www.baldenhofer.eu/blog/?p=2107</guid>
		<description><![CDATA[Nach den Personen-Anwendungsfällen müssen wir uns noch über die Gewichtsverwaltung unterhalten. Ein registrierter Benutzer soll seine Gewichtsinformationen eingeben, ändern und die Auswertungen durchführen können. Gewichtsangaben auflisten Akteur Registrierter Anwender Vorbedingung Der Registrierte Anwender ist angemeldet. Ablauf Der Registrierte Anwender wählt den Link Meine Gewichtsangaben aus. Es werden alle bisher eingegebenen Gewichtsangaben aufgelistet. Nachbedingung Die Gewichtsangaben [...]]]></description>
			<content:encoded><![CDATA[<p>Nach den <a href="../it/programmieren/gewichtsapplikation-anwendungsfaelle-person-verwalten">Personen-Anwendungsfällen</a> müssen wir uns noch über die Gewichtsverwaltung unterhalten.</p>
<div id="attachment_2109" class="wp-caption alignnone" style="width: 397px"><img class="size-full wp-image-2109" title="anwendungsfaelle_gewicht" src="http://www.baldenhofer.eu/blog/wp-content/uploads/2011/07/anwendungsfaelle_gewicht1.png" alt="Anwendungsfälle Gewicht" width="387" height="356" /><p class="wp-caption-text">Anwendungsfälle Gewicht</p></div>
<p>Ein registrierter Benutzer soll seine Gewichtsinformationen eingeben, ändern und die Auswertungen durchführen können.</p>
<h3>Gewichtsangaben auflisten</h3>
<p><strong>Akteur</strong></p>
<p>Registrierter Anwender</p>
<p><strong>Vorbedingung</strong></p>
<p>Der Registrierte Anwender ist angemeldet.</p>
<p><strong>Ablauf</strong></p>
<ul>
<li>Der Registrierte Anwender wählt den Link <strong>Meine Gewichtsangaben </strong>aus.</li>
<li>Es werden alle bisher eingegebenen Gewichtsangaben aufgelistet.</li>
</ul>
<p><strong>Nachbedingung</strong></p>
<p>Die Gewichtsangaben sind angezeigt worden.</p>
<h3>Gewicht eingeben</h3>
<p><strong>Akteur</strong></p>
<p>Registrierter Anwender</p>
<p><strong>Vorbedingung</strong></p>
<p>Der Registrierte Anwender ist angemeldet.</p>
<p><strong>Ablauf</strong></p>
<ul>
<li>Der Registrierte Anwender wählt den Link <strong>Gewicht eingeben</strong> aus.</li>
<li>Er gibt den Tag und das Gewicht ein</li>
<li>Er drückt <strong>speichern</strong></li>
<li>Das System kontrolliert, ob bereits an diesem Tag ein Gewicht eingegeben wurde. (Mehrmals wiegen ergibt irgendwie keinen Sinn&#8230;</li>
<li>Falls alles korrekt eingegeben wurde, wird das Gewicht zur Person gespeichert.</li>
</ul>
<p><strong>Nachbedingung</strong></p>
<p>Das Gewicht wurde angelegt.</p>
<h3>Gewicht ändern</h3>
<p><strong>Akteur</strong></p>
<p>Registrierter Anwender</p>
<p><strong>Vorbedingung</strong></p>
<p>Der Registrierte Anwender ist angemeldet.</p>
<p><strong>Ablauf</strong></p>
<ul>
<li>Der Registrierte Anwender listet seine Gewichtseinträge auf und wählt ein Gewichtseintrag aus.</li>
<li>Er kannden Tag und das Gewicht ändern</li>
<li>Er drückt <strong>speichern</strong></li>
<li>Das System kontrolliert, ob bereits an diesem Tag ein anderes Gewicht eingegeben wurde. (Mehrmals wiegen ergibt irgendwie keinen Sinn&#8230;</li>
<li>Falls alles korrekt eingegeben wurde, wird das Gewicht zur Person gespeichert.</li>
</ul>
<p><strong>Nachbedingung</strong></p>
<p>Das Gewicht wurde geändert.</p>
<h3>Auswertung fahren</h3>
<p><strong>Akteur</strong></p>
<p>Registrierter Anwender</p>
<p><strong>Vorbedingung</strong></p>
<p>Der Registrierte Anwender ist angemeldet.</p>
<p><strong>Ablauf</strong></p>
<ul>
<li>Der Registrierte Anwender wählt den Link <strong>Auswertung</strong> aus.</li>
<li>Das System lädt alle zu dieser Person hinterlegten Gewichtsangaben und generiert eine Übersicht über den Verlauf des Gewichts.</li>
<li>Weiter wird anhand der Stammdaten der Person aufgelistet ob der BMI soweit ok ist, oder wo sich die Person befindet.</li>
<li>Weiter wird angezeigt wie der allgemeine Trend (also ich werde runder, ich nehme ab, ich bleibe auf meinem Gewicht) angezeigt.</li>
</ul>
<p><strong>Nachbedingung</strong></p>
<p>Die Auswertung wurde angezeigt.</p>
<hr /><h2>Ähnliche Beiträge</h2><ul></ul><hr /><small>www.baldenhofer.eu © seit 2009 <br />
Dieser Feed kommt vom <a href="http://www.baldenhofer.eu/blog">Guggat emol Blog</a>, viel Spa&#223; beim Lesen! &#220;ber  Links zu Artikeln freuen wir uns, jedoch bitte bindet nicht einfach unsere Inhalte in eure Seite ein, danke. Hinweis für Feedleser: Beiträge, die Quellcode enthalten sind auf der Webseite meist besser lesbar, als in einem Feed-Reader. 
<br /> 4e3744397ab2a417f811b29573bcbef4)</small>]]></content:encoded>
			<wfw:commentRss>http://www.baldenhofer.eu/blog/it/programmieren/gewichtsapplikation-anwendungsfaelle-gewicht-verwalten/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Gewichtsapplikation Anwendungsfälle Person verwalten</title>
		<link>http://www.baldenhofer.eu/blog/it/programmieren/gewichtsapplikation-anwendungsfaelle-person-verwalten</link>
		<comments>http://www.baldenhofer.eu/blog/it/programmieren/gewichtsapplikation-anwendungsfaelle-person-verwalten#comments</comments>
		<pubDate>Wed, 20 Jul 2011 22:14:36 +0000</pubDate>
		<dc:creator>Roland</dc:creator>
				<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Anwendungsfall]]></category>
		<category><![CDATA[cakephp]]></category>

		<guid isPermaLink="false">http://www.baldenhofer.eu/blog/?p=2104</guid>
		<description><![CDATA[Dieser Artikel knüpft an den Artikel Reload Mit CakePHP zur Applikation an. Jetzt möchte ich die zu erstellenden Anwendungsfälle etwas genauer beschreiben, damit wir auch wissen was wir alles umsetzen müssen. Zuerst möchte ich mich mit den Personen verwalten Prozess relevanten Anwendungsfällen beschäftigen. Hier sehe ich mindestens die folgenden Anwendungsfälle: Die meisten Anwendungsfälle werden vom [...]]]></description>
			<content:encoded><![CDATA[<p>Dieser Artikel knüpft an den Artikel <a href="http://www.baldenhofer.eu/blog/it/programmieren/reload-mit-cakephp-zur-applikation">Reload Mit CakePHP zur Applikation</a> an.</p>
<p>Jetzt möchte ich die zu erstellenden Anwendungsfälle etwas genauer  beschreiben, damit wir auch wissen was wir alles umsetzen müssen. Zuerst  möchte ich mich mit den <strong>Personen verwalten</strong> Prozess relevanten Anwendungsfällen beschäftigen.</p>
<p>Hier sehe ich mindestens die folgenden Anwendungsfälle:</p>
<div id="attachment_2105" class="wp-caption alignnone" style="width: 403px"><img class="size-full wp-image-2105" title="anwendungsfaelle_person_verwalten" src="http://www.baldenhofer.eu/blog/wp-content/uploads/2011/07/anwendungsfaelle_person_verwalten.png" alt="Anwendungsfälle Person verwalten" width="393" height="482" /><p class="wp-caption-text">Anwendungsfälle Person verwalten</p></div>
<p>Die meisten Anwendungsfälle werden vom <strong>Administrator </strong>ausgeführt.</p>
<h3>Person anlegen</h3>
<p><strong>Akteur</strong></p>
<p>Administrator</p>
<p><strong>Vorbedingung</strong></p>
<p>Der Administrator ist angemeldet und der neue Anwender hat ihm die Informationen E-Mail und Name mitgeteilt.</p>
<p><strong>Ablauf</strong></p>
<ul>
<li>Der Administrator wählt den Link <strong>Person hinzufügen</strong> aus.</li>
<li>Er gibt den Namen und die E-Mail Adresse, sowie das Passwort für diese Person ein</li>
<li>Er drückt <strong>speichern</strong></li>
<li>Das System kontrolliert, ob bereits eine Person mit der gleichen E-Mail Adresse vorhanden ist.</li>
<li>Weiter wird kontrolliert ob eine gültige E-Mail Adresse, ein Name und ein Passwort eingegeben wurde. Im Fehlerfall wird dies dem Administrator gemeldet</li>
<li>Falls alles korrekt eingegeben wurde, wird die Person gespeichert.</li>
</ul>
<p><strong>Nachbedingung</strong></p>
<p>Die Person wurde angelegt und kann sich nun als<strong> Registrierter Anwender</strong> anmelden.</p>
<h3>Person ändern</h3>
<p><strong>Akteur</strong></p>
<p>Administrator</p>
<p><strong>Vorbedingung</strong></p>
<p>Der Administrator ist angemeldet.</p>
<p><strong>Ablauf</strong></p>
<ul>
<li>Der Administrator wählt den Link <strong>Personen auflisten </strong> aus.</li>
<li>Alle verfügbaren Personen werden tabellarisch angezeigt.</li>
<li>Der Administrator wählt bei einer Person den Link <strong>editieren </strong>aus.</li>
<li>Das System lädt die aktuellen Daten der Person und zeigt diese an.</li>
<li>Er ändert den Namen, die E-Mail Adresse oder das Passwort für diese Person</li>
<li>Er drückt <strong>speichern</strong></li>
<li>Das System kontrolliert, ob bereits eine weitere Person mit der gleichen E-Mail Adresse vorhanden ist.</li>
<li>Weiter wird kontrolliert ob eine gültige E-Mail Adresse, ein Name  und ein Passwort eingegeben wurde. Im Fehlerfall wird dies dem  Administrator gemeldet</li>
<li>Falls alles korrekt eingegeben wurde, wird die Person gespeichert.</li>
</ul>
<p><strong>Nachbedingung</strong></p>
<p>Die Person wurde geändert und kann sich nun weiterhin als <strong>Registrierter Anwender</strong> anmelden.</p>
<h3>Person löschen</h3>
<p><strong>Akteur</strong></p>
<p>Administrator</p>
<p><strong>Vorbedingung</strong></p>
<p>Der Administrator ist angemeldet.</p>
<p><strong>Ablauf</strong></p>
<ul>
<li>Der Administrator wählt den Link <strong>Personen auflisten </strong> aus.</li>
<li>Alle verfügbaren Personen werden tabellarisch angezeigt.</li>
<li>Der Administrator wählt bei einer Person den Link <strong>löschen </strong>aus.</li>
<li>Er wird nochmals gefragt, ob er die Person wirklich löschen will.</li>
<li>Er bestätigt die Löschung</li>
<li>Das System löscht die Person und alle der Person zugeordneten Daten.</li>
</ul>
<p><strong>Nachbedingung</strong></p>
<p>Die Person wurde gelöscht und alle Daten sind aus dem System zu dieser Person entfernt worden.</p>
<h3>Alle Personen anzeigen</h3>
<p><strong>Akteur</strong></p>
<p>Administrator, Registrierter Anwender</p>
<p><strong>Vorbedingung</strong></p>
<p>Der Administrator oder der Registrierte Anwender, ist angemeldet.</p>
<p><strong>Ablauf</strong></p>
<ul>
<li>Der User wählt den Link <strong>Personen auflisten </strong> aus.</li>
<li>Alle verfügbaren Personen werden tabellarisch angezeigt.</li>
<li>Ist der Anwender ein <strong>Administrator </strong>werden die Links <strong>ansehen</strong>, <strong>ändern </strong>und <strong>löschen </strong>angezeigt</li>
<li>Ist der Anwender ein<strong> Registrierter Anwender </strong>werden der Link <strong>ansehen </strong>angezeigt.</li>
</ul>
<p><strong>Nachbedingung</strong></p>
<p>Alle bekannten Personen werden aufgelistet.</p>
<h3>Details zu Person anzeigen</h3>
<p><strong>Akteur</strong></p>
<p>Administrator, Registrierter Anwender</p>
<p><strong>Vorbedingung</strong></p>
<p>Der Administrator oder der Registrierte Anwender, ist angemeldet.</p>
<p><strong>Ablauf</strong></p>
<ul>
<li>Der User wählt den Link <strong>ansehen </strong> aus.</li>
<li>Zu der ausgewählten Person werden alle Details (Gewichtsangaben und Personendaten) angezeigt.</li>
</ul>
<p><strong>Nachbedingung</strong></p>
<p>Die Details wurden angezeigt.</p>
<p>Diese Anwendungsfälle sollten vorerst genügen um unsere Personen zu verwalten. Als nächstes müssen wir noch Gewichte eingeben können und dann haben wir alles soweit beschrieben.</p>
<hr /><h2>Ähnliche Beiträge</h2><ul></ul><hr /><small>www.baldenhofer.eu © seit 2009 <br />
Dieser Feed kommt vom <a href="http://www.baldenhofer.eu/blog">Guggat emol Blog</a>, viel Spa&#223; beim Lesen! &#220;ber  Links zu Artikeln freuen wir uns, jedoch bitte bindet nicht einfach unsere Inhalte in eure Seite ein, danke. Hinweis für Feedleser: Beiträge, die Quellcode enthalten sind auf der Webseite meist besser lesbar, als in einem Feed-Reader. 
<br /> 4e3744397ab2a417f811b29573bcbef4)</small>]]></content:encoded>
			<wfw:commentRss>http://www.baldenhofer.eu/blog/it/programmieren/gewichtsapplikation-anwendungsfaelle-person-verwalten/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Akteure für die Gewichtsapplikation</title>
		<link>http://www.baldenhofer.eu/blog/guggat_emol/akteure-fuer-die-gewichtsapplikation</link>
		<comments>http://www.baldenhofer.eu/blog/guggat_emol/akteure-fuer-die-gewichtsapplikation#comments</comments>
		<pubDate>Tue, 19 Jul 2011 22:53:11 +0000</pubDate>
		<dc:creator>Roland</dc:creator>
				<category><![CDATA[Guggat emol]]></category>
		<category><![CDATA[Anwendungsfall]]></category>
		<category><![CDATA[cakephp]]></category>
		<category><![CDATA[Programmieren]]></category>

		<guid isPermaLink="false">http://www.baldenhofer.eu/blog/?p=2099</guid>
		<description><![CDATA[Im Artikel Reload Mit CakePHP zur Applikation habe ich eine grobe Vision skizziert, die ich mit CakePHP umsetzen will. In diesem Artikel werde ich die beiden Akteure vorstellen, die in der Gewichtsapplikation zum Einsatz kommen werden. Akteure der Gewichtsapplikation Bisher sehe ich für diese kleine Anwendung die Akteure Administrator und Registrierter Anwender vor. Der Administrator [...]]]></description>
			<content:encoded><![CDATA[<p>Im Artikel <a href="http://www.baldenhofer.eu/blog/it/programmieren/reload-mit-cakephp-zur-applikation">Reload Mit CakePHP zur Applikation</a> habe ich eine grobe Vision skizziert, die ich mit CakePHP umsetzen will.</p>
<p>In diesem Artikel werde ich die beiden Akteure vorstellen, die in der Gewichtsapplikation zum Einsatz kommen werden.</p>
<h3>Akteure der Gewichtsapplikation</h3>
<p>Bisher sehe ich für diese kleine Anwendung die Akteure <strong>Administrator </strong>und<strong> Registrierter Anwender</strong> vor.</p>
<div id="attachment_2100" class="wp-caption alignnone" style="width: 164px"><img class="size-full wp-image-2100" title="Akteure" src="http://www.baldenhofer.eu/blog/wp-content/uploads/2011/07/Akteure.png" alt="Akteure" width="154" height="271" /><p class="wp-caption-text">Akteure</p></div>
<p>Der <strong>Administrator </strong>sorgt dafür, dass neue<strong> Registrierte Anwender</strong> im System zugelassen werden und dass nicht mehr benötigte Anwender entfernt werden.<br />
In der ersten Ausbaustufe wird keine Registrierung oder spezielle Userverwaltung vorgesehen. Das machen wir dann mit miradlokit, denn dort müssen wir nicht alles nochmal von vorne definieren.</p>
<p>Der<strong> Registrierte Anwender</strong> ist eine Person, die sich am System anmelden kann und ihre eigenen Daten verändern kann. Er / Sie kann also Gewichtsangaben für eine bestimmte Person eingeben.</p>
<p>Damit ein Anwender zum <strong>Registrierten Anwender</strong> mutiert, muss er vom Administrator angemeldet werden.<br />
Beispiel:</p>
<p>Ich will mein Gewicht mit der Applikation verwalten.<br />
Dazu schreibe ich den <strong>Administrator </strong>an und teile ihm folgende Infos mit:</p>
<ul>
<li>Name</li>
<li>email Adresse (zum Einloggen)</li>
</ul>
<p>Der <strong>Administrator </strong>legt für mich einen Zugang an und vergibt mir ein Passwort. Dieses Passwort kann ich in der ersten Ausbaustufe noch nicht ändern. Auch das machen wir dann mit miradlokit&#8230;</p>
<p>Mir ist klar, dass dies nicht besonders benutzerfreundlich ist. Aber um überhaupt mal anfangen zu können reicht das schon aus. Ihr könnt ja gerne die Applikation um eine Registrierung und um Passwortverwaltung ergänzen. Zum CakePHP-Grundzüge zu verstehen reicht das erst mal völlig aus.</p>
<p>Das war es schon. Diese beiden Akteuere werden in unserer Applikation die entsprechenden Aktivitäten ausführen.</p>
<hr /><h2>Ähnliche Beiträge</h2><ul></ul><hr /><small>www.baldenhofer.eu © seit 2009 <br />
Dieser Feed kommt vom <a href="http://www.baldenhofer.eu/blog">Guggat emol Blog</a>, viel Spa&#223; beim Lesen! &#220;ber  Links zu Artikeln freuen wir uns, jedoch bitte bindet nicht einfach unsere Inhalte in eure Seite ein, danke. Hinweis für Feedleser: Beiträge, die Quellcode enthalten sind auf der Webseite meist besser lesbar, als in einem Feed-Reader. 
<br /> 4e3744397ab2a417f811b29573bcbef4)</small>]]></content:encoded>
			<wfw:commentRss>http://www.baldenhofer.eu/blog/guggat_emol/akteure-fuer-die-gewichtsapplikation/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reload Mit CakePHP zur Applikation</title>
		<link>http://www.baldenhofer.eu/blog/it/programmieren/reload-mit-cakephp-zur-applikation</link>
		<comments>http://www.baldenhofer.eu/blog/it/programmieren/reload-mit-cakephp-zur-applikation#comments</comments>
		<pubDate>Tue, 19 Jul 2011 10:52:48 +0000</pubDate>
		<dc:creator>Roland</dc:creator>
				<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[cakephp]]></category>
		<category><![CDATA[miradlokit]]></category>

		<guid isPermaLink="false">http://www.baldenhofer.eu/blog/?p=2096</guid>
		<description><![CDATA[Ich habe mal vor ewigen Zeiten den Artikel Mit CakePHP in einer Stunde und zwei Minuten zur Applikation geschrieben. In diesem Artikel geht es darum, wie ich in etwas mehr als einer Stunde eine CakePHP Applikation aufgesetzt hatte. Vor ein paar Tagen hat Tim mich gefragt, ob ich die dort beschriebenen Schritte für Anfänger genauer [...]]]></description>
			<content:encoded><![CDATA[<p>Ich habe mal vor ewigen Zeiten den Artikel <a href="http://www.baldenhofer.eu/blog/it/mit_cakephp_in_einer_stunde_zur_applikatio">Mit CakePHP in einer Stunde und zwei Minuten zur Applikation</a> geschrieben. In diesem Artikel geht es darum, wie ich in etwas mehr als einer Stunde eine CakePHP Applikation aufgesetzt hatte.</p>
<p>Vor ein paar Tagen hat Tim mich gefragt, ob ich die dort beschriebenen Schritte für Anfänger genauer erklären kann. Das werde ich jetzt in ein paar Artikeln durchführen.</p>
<p>Vorab möchte ich jedoch vorausschicken, dass die Dokumentation von CakePHP, respektive <a href="http://book.cakephp.org/">das Kochbuch</a>, perfekt dokumentiert ist und diese Artikel hier nur ergänzen können. Nach Abschluss dieser Miniserie werde ich die Applikation nochmals mit miradlokit (unser CakePHP-basiertes Applikationsframework) nochmals aufgreifen. Dann werde ich auf Berechtigungen, Zugriffseinschränkungen, Navigationen usw. eingehen.</p>
<h3>Vision</h3>
<p>Wie beim letzten Mal brauchen wir eine Aufgabe die wir mit unserem Projekt umsetzen wollen.<br />
Das mit den Gewichtsangaben ist ja schon ganz nett. Deshalb greife ich das nochmals auf.</p>
<p>Folgende groben Prozesse sehe ich für unser Projekt vor:</p>
<div id="attachment_2097" class="wp-caption alignnone" style="width: 416px"><img class="size-full wp-image-2097" title="vision" src="http://www.baldenhofer.eu/blog/wp-content/uploads/2011/07/vision.png" alt="Vision" width="406" height="356" /><p class="wp-caption-text">Vision</p></div>
<p>Wir werden mehrere Personen anlegen können, zu denen wir die einzelnen Gewichtsangaben pro Zeitraum hinzufügen wollen.<br />
Also beispielsweise wiegt Alfred am 16.07.2011 83,5kg. Dann am 20.07.2011 wiegt er 82,0kg. Und am 27.12.2011 wiegt er 87kg. Diese Messwerte hat er in das System eingegeben. Der arme Kerl hat wohl zu viel Weihnachten gefeiert, dann muss er wohl wieder etwas mehr Bewegung in seinen Alltag einfliessen lassen <img src='http://www.baldenhofer.eu/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Gut, wenn die Gewichtsangaben eingegeben worden sind, wollen wir uns den Gewichtsverlauf in tabelarischer und in grafischer Form ansehen können.</p>
<p>Wir haben also grob drei Geschäftsprozesse die wir umsetzen wollen:</p>
<ul>
<li>Person verwalten<br />
Hierunter fallen die Anwendungsfälle Person anlegen, ändern, ansehen und löschen.</li>
<li>Gewicht eingeben<br />
Zu einer ausgewählten Person kann die Gewichtsangabe festgelegt werden. Über eine Datumsauswahl kann der Tag ausgewählt werden und dann können die Gewichtsangaben entsprechend verewigt werden. Die einzelnen Einträge können nachträglich geändert oder gelöscht werden. Wenn eine Person gelöscht wird, dann sollen auch all die dazu angegebenen Gewichtsangaben gelöscht werden.</li>
<li>Gewicht Verlauf ansehen<br />
Die Daten zu einer Person können in tabelarischer und grafischer Form angegeben werden. Wir werden also eine &#8220;normale&#8221; HTML-Ausgabe und eine gezeichnete Kurve, die die Werte des Gewichts beinhaltet, ausgeben.</li>
</ul>
<p>Diese Vision packe ich nicht in etwas mehr als einer Stunde. Diesmal werde ich deshalb auf die einzelnen Schritte in einzelnen Artikeln eingehen und mir etwas mehr Zeit gönnen.</p>
<hr /><h2>Ähnliche Beiträge</h2><ul></ul><hr /><small>www.baldenhofer.eu © seit 2009 <br />
Dieser Feed kommt vom <a href="http://www.baldenhofer.eu/blog">Guggat emol Blog</a>, viel Spa&#223; beim Lesen! &#220;ber  Links zu Artikeln freuen wir uns, jedoch bitte bindet nicht einfach unsere Inhalte in eure Seite ein, danke. Hinweis für Feedleser: Beiträge, die Quellcode enthalten sind auf der Webseite meist besser lesbar, als in einem Feed-Reader. 
<br /> 4e3744397ab2a417f811b29573bcbef4)</small>]]></content:encoded>
			<wfw:commentRss>http://www.baldenhofer.eu/blog/it/programmieren/reload-mit-cakephp-zur-applikation/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

