<?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/"
	>

<channel>
	<title>Marko Bischof &#187; PHP</title>
	<atom:link href="http://blog.mbischof.de/kategorie/php/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.mbischof.de</link>
	<description>yes it is - meine yiiframework snippets</description>
	<lastBuildDate>Thu, 02 Feb 2012 19:59:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>isUTF8</title>
		<link>http://blog.mbischof.de/isutf8</link>
		<comments>http://blog.mbischof.de/isutf8#comments</comments>
		<pubDate>Thu, 26 Jan 2012 16:55:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.mbischof.de/?p=916</guid>
		<description><![CDATA[function isUTF8&#40;$str&#41; &#123; return preg_match&#40;'/^([\x09\x0A\x0D\x20-\x7E]&#124;[\xC2][\xA0-\xBF]&#124;[\xC3-\xDF][\x80-\xBF]&#124;\xE0[\xA0-\xBF][\x80-\xBF]&#124;[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}&#124;\xED[\x80-\x9F][\x80-\xBF]&#124;\xF0[\x90-\xBF][\x80-\xBF]{2}&#124;[\xF1-\xF3][\x80-\xBF]{3}&#124;\xF4[\x80-\x8F][\x80-\xBF]{2})*$/', $str&#41;; &#125;]]></description>
			<content:encoded><![CDATA[
<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> isUTF8<span style="color: #009900;">&#40;</span><span style="color: #000088;">$str</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
  <span style="color: #b1b100;">return</span> <span style="color: #990000;">preg_match</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/^([\x09\x0A\x0D\x20-\x7E]|[\xC2][\xA0-\xBF]|[\xC3-\xDF][\x80-\xBF]|\xE0[\xA0-\xBF][\x80-\xBF]|[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}|\xED[\x80-\x9F][\x80-\xBF]|\xF0[\x90-\xBF][\x80-\xBF]{2}|[\xF1-\xF3][\x80-\xBF]{3}|\xF4[\x80-\x8F][\x80-\xBF]{2})*$/'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$str</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://blog.mbischof.de/isutf8/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP_CodeSniffer in Eclipse verwenden</title>
		<link>http://blog.mbischof.de/php_codesniffer-in-eclipse-verwenden</link>
		<comments>http://blog.mbischof.de/php_codesniffer-in-eclipse-verwenden#comments</comments>
		<pubDate>Fri, 20 Nov 2009 16:25:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.mbischof.de/?p=411</guid>
		<description><![CDATA[Eclipse öffnen Run -&#62; external Tools -&#62; External Tools Configuration Program -&#62; rechte Maustaste -&#62; New Name: CodeSniffer Location: absoluter Pfad zu phpcs.bat (gewöhnlich im PHP-Verzeichnis) Arguments: &#8211;standard=Zend &#8220;${resource_loc}&#8221; Apply Run -&#62; external Tools -&#62; Organize Favorites Codesniffer hinzufügen -&#62; ok Ein Symbol erscheint in der Toolbar (grüner Ball mit weissem Pfeil und rotem Koffer) [...]]]></description>
			<content:encoded><![CDATA[<ul>
<li> Eclipse öffnen</li>
<li> Run -&gt; external Tools -&gt; External Tools Configuration</li>
<li> Program -&gt; rechte Maustaste -&gt; New</li>
<li> Name: CodeSniffer</li>
<li> Location: absoluter Pfad zu phpcs.bat (gewöhnlich im PHP-Verzeichnis)</li>
<li> Arguments: &#8211;standard=Zend &#8220;${resource_loc}&#8221;</li>
<li> Apply</li>
</ul>
<ul>
<li> Run -&gt; external Tools -&gt; Organize Favorites</li>
<li> Codesniffer hinzufügen -&gt; ok</li>
<li> <strong>Ein Symbol erscheint in der Toolbar (grüner Ball mit weissem Pfeil und rotem Koffer)</strong></li>
<li> die aktuelle Datei wird onClick gegen den Zend-CodingStandard validiert, onError öffnet sich ein Meldefenster</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.mbischof.de/php_codesniffer-in-eclipse-verwenden/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Diskussionen zu PHP Template Engines</title>
		<link>http://blog.mbischof.de/diskussionen-zu-php-template-engines</link>
		<comments>http://blog.mbischof.de/diskussionen-zu-php-template-engines#comments</comments>
		<pubDate>Thu, 08 Oct 2009 09:45:33 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.mbischof.de/?p=354</guid>
		<description><![CDATA[Die Diskussionen zu Pro und Contras sogenannter Template Engines in PHP scheinen kein Ende zu nehmen. Hier eine kleine Sammlung, die fortgeführt werden könnte. Fabien Potencier über Template Engines Reaktion von Eli White Diskussion auf PHPHatesMe Anti Smarty Fraktion Buchautor Hasin Hayder gegen Smarty Reaktion von Padraic Brady und nochmal Fabien Potencier Links zu Template [...]]]></description>
			<content:encoded><![CDATA[<p>Die Diskussionen zu Pro und Contras sogenannter Template Engines in PHP scheinen kein Ende zu nehmen. Hier eine kleine Sammlung, die fortgeführt werden könnte.</p>
<ul>
<li><a href="http://fabien.potencier.org/article/34/templating-engines-in-php">Fabien Potencier über Template Engines</a></li>
<li><a href="http://eliw.wordpress.com/2009/10/07/in-response-to-fabien-potencier-twig-php-templating/">Reaktion von Eli White</a></li>
<li><a href="http://www.phphatesme.com/blog/tools/template-engines-eine-gute-idee/">Diskussion auf PHPHatesMe</a></li>
<li><a href="http://www.nosmarty.net/">Anti Smarty Fraktion</a></li>
<li><a href="http://hasin.wordpress.com/2008/01/05/once-upon-a-time-there-was-smarty/">Buchautor Hasin Hayder gegen Smarty</a></li>
<li><a href="http://blog.astrumfutura.com/2009/10/is-php-a-worthy-template-language-well-of-course-it-is/">Reaktion von Padraic Brady</a></li>
<li><a href="http://fabien.potencier.org/article/35/templating-engines-in-php-follow-up">und nochmal Fabien Potencier</a></li>
</ul>
<p>Links zu Template Engines:</p>
<ul>
<li><a href="http://www.smarty.net/">Smarty</a></li>
<li><a href="http://phpsavant.com/">PHPSavant</a></li>
<li><a href="http://phptal.org/">PHPTAL</a></li>
<li><a href="http://components.symfony-project.org/templating/">Symfony Template Component</a></li>
<li><a href="http://www.twig-project.org/">Twig<br />
</a></li>
<li><a href="http://dwoo.org/">Dwoo</a> (Smarty Fork?)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.mbischof.de/diskussionen-zu-php-template-engines/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mail versenden mit Swift_Mailer und Yii</title>
		<link>http://blog.mbischof.de/mail-versenden-mit-swift_mailer-und-yii</link>
		<comments>http://blog.mbischof.de/mail-versenden-mit-swift_mailer-und-yii#comments</comments>
		<pubDate>Sun, 04 Oct 2009 00:22:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Yii]]></category>

		<guid isPermaLink="false">http://blog.mbischof.de/?p=345</guid>
		<description><![CDATA[Download SwiftMailer 4.1 Erstelle ein Verzeichnis protected/vendor/swift Kopiere den Inhalt des lib-Ordners in den eben erstellten swift-Ordner siehe hier statt require_once 'lib/swift_required.php'; schreibe spl_autoload_unregister&#40;array&#40;'YiiBase','autoload'&#41;&#41;; Yii::import&#40;'application.vendor.swift.swift_required', true&#41;; spl_autoload_register&#40;array&#40;'YiiBase','autoload'&#41;&#41;;]]></description>
			<content:encoded><![CDATA[<ul>
<li>Download <a href="http://github.com/swiftmailer/swiftmailer/tree/4.1">SwiftMailer 4.1</a></li>
<li>Erstelle ein Verzeichnis <em>protected/vendor/swift</em></li>
<li>Kopiere den Inhalt des lib-Ordners in den eben erstellten swift-Ordner</li>
<li>siehe <a href="http://blog.mbischof.de/mail-versenden-mit-swift_mailer">hier</a></li>
</ul>
<p>statt</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">require_once</span> <span style="color: #0000ff;">'lib/swift_required.php'</span><span style="color: #339933;">;</span></pre></div></div>

<p>schreibe</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">spl_autoload_unregister</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'YiiBase'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'autoload'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
Yii<span style="color: #339933;">::</span><span style="color: #004000;">import</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'application.vendor.swift.swift_required'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">spl_autoload_register</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'YiiBase'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'autoload'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://blog.mbischof.de/mail-versenden-mit-swift_mailer-und-yii/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mail versenden mit Swift_Mailer</title>
		<link>http://blog.mbischof.de/mail-versenden-mit-swift_mailer</link>
		<comments>http://blog.mbischof.de/mail-versenden-mit-swift_mailer#comments</comments>
		<pubDate>Sat, 03 Oct 2009 14:47:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.mbischof.de/?p=341</guid>
		<description><![CDATA[function sendHtmlMail&#40;$from, $to, $subject, $body, $attachments = array&#40;&#41;&#41; &#123; require_once 'lib/swift_required.php'; &#160; $message = Swift_Message::newInstance&#40;&#41; -&#62;setSubject&#40;$subject&#41; -&#62;setFrom&#40;$from&#41; -&#62;setTo&#40;$to&#41; -&#62;setBody&#40;$body, 'text/html'&#41;; &#160; $transport = Swift_SmtpTransport::newInstance&#40;'host', 25&#41; -&#62;setUsername&#40;'username'&#41; -&#62;setPassword&#40;'password'&#41;; &#160; $mailer = Swift_Mailer::newInstance&#40;$transport&#41;; return $mailer-&#62;send&#40;$message&#41;; &#125; &#160; var_dump&#40;sendHtmlMail&#40;&#34;fromMailAddress&#34;, &#34;toMailAddress&#34;, &#34;subject&#34;, &#34;body&#34;&#41;&#41;; Swift Mailer Lib]]></description>
			<content:encoded><![CDATA[
<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> sendHtmlMail<span style="color: #009900;">&#40;</span><span style="color: #000088;">$from</span><span style="color: #339933;">,</span> <span style="color: #000088;">$to</span><span style="color: #339933;">,</span> <span style="color: #000088;">$subject</span><span style="color: #339933;">,</span> <span style="color: #000088;">$body</span><span style="color: #339933;">,</span> <span style="color: #000088;">$attachments</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">require_once</span> <span style="color: #0000ff;">'lib/swift_required.php'</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000088;">$message</span> <span style="color: #339933;">=</span> Swift_Message<span style="color: #339933;">::</span><span style="color: #004000;">newInstance</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
      <span style="color: #339933;">-&gt;</span><span style="color: #004000;">setSubject</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$subject</span><span style="color: #009900;">&#41;</span>
      <span style="color: #339933;">-&gt;</span><span style="color: #004000;">setFrom</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$from</span><span style="color: #009900;">&#41;</span>
      <span style="color: #339933;">-&gt;</span><span style="color: #004000;">setTo</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$to</span><span style="color: #009900;">&#41;</span>
      <span style="color: #339933;">-&gt;</span><span style="color: #004000;">setBody</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$body</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'text/html'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000088;">$transport</span> <span style="color: #339933;">=</span> Swift_SmtpTransport<span style="color: #339933;">::</span><span style="color: #004000;">newInstance</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'host'</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">25</span><span style="color: #009900;">&#41;</span>
      <span style="color: #339933;">-&gt;</span><span style="color: #004000;">setUsername</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'username'</span><span style="color: #009900;">&#41;</span>
      <span style="color: #339933;">-&gt;</span><span style="color: #004000;">setPassword</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'password'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000088;">$mailer</span> <span style="color: #339933;">=</span> Swift_Mailer<span style="color: #339933;">::</span><span style="color: #004000;">newInstance</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$transport</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">return</span> <span style="color: #000088;">$mailer</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">send</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$message</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #990000;">var_dump</span><span style="color: #009900;">&#40;</span>sendHtmlMail<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;fromMailAddress&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;toMailAddress&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;subject&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;body&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<ul>
<li><a href="http://swiftmailer.org/">Swift Mailer Lib</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.mbischof.de/mail-versenden-mit-swift_mailer/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP Onlineshop Lösungen</title>
		<link>http://blog.mbischof.de/php-onlineshop-losungen</link>
		<comments>http://blog.mbischof.de/php-onlineshop-losungen#comments</comments>
		<pubDate>Thu, 23 Jul 2009 11:09:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.mbischof.de/?p=297</guid>
		<description><![CDATA[oscommerce xt:commerce magento virtuemart oxid eSales xcart zen cart Zum Vervollständigen der Liste bitte die Kommentarfunktion nutzen. Beitrag wird ständig überarbeitet.]]></description>
			<content:encoded><![CDATA[<ul>
<li><a href="http://oscommerce.com/">oscommerce</a></li>
<li><a href="http://www.xt-commerce.com/">xt:commerce</a></li>
<li><a href="http://www.magentocommerce.com/">magento</a></li>
<li><a href="http://www.virtuemart.net/">virtuemart</a></li>
<li><a href="http://www.oxid-esales.com/">oxid eSales</a></li>
<li><a href="http://www.x-cart.com/">xcart</a></li>
<li><a href="http://www.zen-cart.com">zen cart</a></li>
</ul>
<p>Zum Vervollständigen der Liste bitte die Kommentarfunktion nutzen. Beitrag wird ständig überarbeitet.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mbischof.de/php-onlineshop-losungen/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Mit Yii und Zend einen WordPress Post erzeugen</title>
		<link>http://blog.mbischof.de/mit-yii-und-zend-einen-wordpress-post-erzeugen</link>
		<comments>http://blog.mbischof.de/mit-yii-und-zend-einen-wordpress-post-erzeugen#comments</comments>
		<pubDate>Mon, 11 May 2009 09:06:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Yii]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://blog.mbischof.de/?p=99</guid>
		<description><![CDATA[Hier hab ich erklärt, wie man generell mit Zend_XmlRpc einen WordPress Post erzeugt. In diesem Beitrag bauen wir uns ein kleines Tool mit dem Yii-Framework, welches mit Hilfe der Zend Komponenten einen Blogeintrag erzeugt. Wir brauchen ein Formular, welches wir mit Yii bauen und eine Action, welche das Formular verarbeitet. zusätzlich wollen wir das Formular [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.mbischof.de/einen-wordpress-post-per-xml-rpc-erzeugen">Hier</a> hab ich erklärt, wie man generell mit Zend_XmlRpc einen WordPress Post erzeugt.</p>
<p>In diesem Beitrag bauen wir uns ein kleines Tool mit dem Yii-Framework, welches mit Hilfe der Zend Komponenten einen Blogeintrag erzeugt. Wir brauchen ein Formular, welches wir mit Yii bauen und eine Action, welche das Formular verarbeitet. zusätzlich wollen wir das Formular noch durch einen Login schützen. Das Ganze ist wirklich nicht viel Arbeit, wie hoffentlich gleich zu sehen sein wird.</p>
<p>Der Weg ist folgender:</p>
<ul>
<li>per yiic <a title="Eine Webapplication erzeugen" href="http://www.yiiframework.com/doc/guide/quickstart.first-app" target="_blank">eine WebApplication erzeugen</a></li>
<li>das Formular Model erstellen</li>
<li>das Formular anzeigen</li>
<li>das Formular verarbeiten</li>
</ul>
<p>Ok, ich hab das Erstellen der Applikation mal ge-outsourced, dieses Wissen könnte bereits vorhanden sein, es ist ja nur ein einfacher Befehl auf der Konsole.</p>
<p>Im Ordner protected/models legen wir nun eine Datei mit dem Namen TestForm.php an mit folgendem Inhalt:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">class</span> TestForm <span style="color: #000000; font-weight: bold;">extends</span> CFormModel
<span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000088;">$title</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000088;">$description</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> rules<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">return</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
            <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'title, description'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'required'</span><span style="color: #009900;">&#41;</span>
        <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Im Ordner protected/views nun eine Datei namens test.php</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;div class=&quot;yiiForm&quot;&gt;
    &lt;?php echo CHtml::beginForm(); ?&gt;
&nbsp;
    &lt;?php echo CHtml::errorSummary($form); ?&gt;
&nbsp;
    &lt;div class=&quot;simple&quot;&gt;
    &lt;?php echo CHtml::activeLabel($form,'title'); ?&gt;
    &lt;?php echo CHtml::activeTextField($form,'title'); ?&gt;
    &lt;/div&gt;
&nbsp;
    &lt;div class=&quot;simple&quot;&gt;
    &lt;?php echo CHtml::activeLabel($form,'description'); ?&gt;
    &lt;?php echo CHtml::activeTextArea($form,'description',array('rows'=&gt;6, 'cols'=&gt;50)); ?&gt;
    &lt;/div&gt;
&nbsp;
    &lt;div class=&quot;action&quot;&gt;
    &lt;?php echo CHtml::submitButton('Submit'); ?&gt;
    &lt;/div&gt;
&nbsp;
    &lt;?php echo CHtml::endForm(); ?&gt;
&nbsp;
&lt;/div&gt;</pre></div></div>

<p>Und in der Datei protected/controllers/Sitecontroller.php fügen wir eine zusätzliche Action ein:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> actionTest<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$form</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> TestForm<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'TestForm'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000088;">$form</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">attributes</span><span style="color: #339933;">=</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'TestForm'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$form</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">validate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            Yii<span style="color: #339933;">::</span><span style="color: #004000;">import</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'application.vendors.*'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #b1b100;">require_once</span> <span style="color: #0000ff;">'Zend/XmlRpc/Client.php'</span><span style="color: #339933;">;</span>
            <span style="color: #000088;">$client</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Zend_XmlRpc_Client<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'http://blog.mbischof.de/xmlrpc.php'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
            <span style="color: #000088;">$username</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'username'</span><span style="color: #339933;">;</span>
            <span style="color: #000088;">$password</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'password'</span><span style="color: #339933;">;</span>
            <span style="color: #000088;">$content</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
                <span style="color: #0000ff;">'title'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$form</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">title</span><span style="color: #339933;">,</span>
                <span style="color: #0000ff;">'description'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$form</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">description</span>
            <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
            <span style="color: #000088;">$result</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$client</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">call</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'metaWeblog.newPost'</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
                <span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span> <span style="color: #000088;">$username</span><span style="color: #339933;">,</span> <span style="color: #000088;">$password</span><span style="color: #339933;">,</span> <span style="color: #000088;">$content</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span>
            <span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">render</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;test&quot;</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;form&quot;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$form</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Die entsprechenden Zend Framework-Klassen müssen sich hierbei im Verzeichnis protected/vendors befinden.</p>
<p>Damit wir das ganze noch mit einem Login absichern, brauchen wir noch folgenden Code im Sitecontroller.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> filters<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">return</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
        <span style="color: #0000ff;">'accessControl'</span><span style="color: #339933;">,</span>
    <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> accessRules<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">return</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
        <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'allow'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'actions'</span><span style="color: #339933;">=&gt;</span>array<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'login'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'contact'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'index'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'users'</span><span style="color: #339933;">=&gt;</span>array<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'*'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
        <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'allow'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'users'</span><span style="color: #339933;">=&gt;</span>array<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'@'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
        <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'deny'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'users'</span><span style="color: #339933;">=&gt;</span>array<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'*'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Und so rufen wir das Ganze nun im Browser auf:</p>

<div class="wp_syntax"><div class="code"><pre class="txt" style="font-family:monospace;">index.php?r=site/test</pre></div></div>

<p>Fertig! </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mbischof.de/mit-yii-und-zend-einen-wordpress-post-erzeugen/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Die Alphatiere unter den PHP-Frameworks</title>
		<link>http://blog.mbischof.de/die-alphatiere-unter-den-php-frameworks</link>
		<comments>http://blog.mbischof.de/die-alphatiere-unter-den-php-frameworks#comments</comments>
		<pubDate>Fri, 08 May 2009 12:41:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.mbischof.de/?p=71</guid>
		<description><![CDATA[So, nachdem ich ja gestern auf ein relativ neues Framework aufmerksam gemacht habe, möchte ich heute kurz eine Liste von den Platzhirschen zum Besten geben, von denen ich persönlich meine, dass sie auf jeden Fall dazugehören. Zend Framework Ok, daran kommt wahrscheinlich keiner vorbei. Wer das nicht kennt, hat nicht viel am Hut mit PHP, [...]]]></description>
			<content:encoded><![CDATA[<p>So, nachdem ich ja <a title="Yii Framework" href="http://blog.mbischof.de/yii-noch-ein-php5-framework">gestern</a> auf ein relativ neues Framework aufmerksam gemacht habe, möchte ich heute kurz eine Liste von den Platzhirschen zum Besten geben, von denen ich persönlich meine, dass sie auf jeden Fall dazugehören.</p>
<p><span id="more-71"></span><a title="Zend Framework" href="http://framework.zend.com" target="_blank"><strong>Zend Framework</strong></a></p>
<p>Ok, daran kommt wahrscheinlich keiner vorbei. Wer das nicht kennt, hat nicht viel am Hut mit PHP, jeder Fido bellt danach. Das Zend Framework besteht aus einer Reihe von Paketen, die viele alltägliche Aufgabenbereiche abdecken und somit schnell eine Lösungsfindung ermöglichen.</p>
<p><a title="symfony PHP Framework" href="http://www.symfony-project.org" target="_blank"><strong>symfony</strong></a></p>
<p>symfony ist ein echtes Rapid Application Development &#8211; Tool (RAD). Schneller lassen sich Anwendungen nicht erstellen.</p>
<p><a title="CakePHP" href="http://cakephp.org" target="_blank"><strong>CakePHP</strong></a></p>
<p>Der einzige Vertreter, der noch mit PHP4 kompatibel ist und durch die Bakery auch sehr schnell CRUD-Anwendungen erzeugen kann.</p>
<p><a title="Prado PHP5-Framework" href="http://www.pradosoft.com/" target="_blank"><strong>Prado</strong></a></p>
<p>Prado ist irgendwie anders. Wenn man sich die Klassenhierarchie anschaut, dann erinnert das an Delphi. Hier wird mehr in Komponenten und Properties und Eventhandlern gedacht.</p>
<p><a title="Yii Framework" href="http://yiiframework.com" target="_blank"><strong>Yii</strong></a></p>
<p>Das Yii-Framework hatte ich hier bereits kurz vorgestellt und stammt übrigens von den Prado-Entwicklern. Obwohl sehr jung, halte ich es doch für bemerkenswert für diese Liste.</p>
<p><a title="Solar PHP Framework" href="http://www.solarphp.com/" target="_blank"><strong>Solar</strong></a></p>
<p>Solar ist ein Projekt von <a title="Paul M Jones Blog" href="http://paul-m-jones.com/" target="_blank">Paul M Jones</a>, der auch Zend Framework Contributor war/ist, der mit <a title="PHPSavant Template Engine" href="http://phpsavant.com/" target="_blank">PHPSavant</a> den Grundstein für <a title="Zend_View Dokumentation" href="http://framework.zend.com/manual/de/zend.view.html" target="_blank">Zend_View</a> legte und auch zu <a title="PEAR" href="http://pear.php.net/" target="_blank">PEAR</a> einiges beisteuerte (DB_Table). Diese ganze Erfahrung floss ein in die Entwicklung von Solar.</p>
<p><a title="Smarty Template Engine" href="http://www.smarty.net" target="_blank"><strong>Smarty</strong></a></p>
<p>Smarty ist eine Template-Engine und ein möglicher Kandidat, in einer MVC-Umgebung das &#8220;V&#8221; zu repräsentieren.</p>
<p><strong><a title="Doctrine ORM Projekt" href="http://www.doctrine-project.org/" target="_blank">Doctrine</a> + <a title="Propel ORM Projekt" href="http://propel.phpdb.org" target="_blank">Propel</a></strong></p>
<p>Doctrine wie Propel sind sogenannte ORMs, objekt-relationale Mapper, mit denen sich ohne SQL auf der Datenbank arbeiten läßt.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mbischof.de/die-alphatiere-unter-den-php-frameworks/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Yii &#8211; noch ein PHP5-Framework</title>
		<link>http://blog.mbischof.de/yii-noch-ein-php5-framework</link>
		<comments>http://blog.mbischof.de/yii-noch-ein-php5-framework#comments</comments>
		<pubDate>Fri, 08 May 2009 00:08:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.mbischof.de/?p=68</guid>
		<description><![CDATA[Anders als es die Überschrift vielleicht vermuten läßt: nein, ich bin nicht genervt von der Tatsache, noch ein solches Ding entdeckt zu haben &#8211; im Gegenteil, ich würde es sonst für mich behalten. Ich hab mir also noch ein weiteres PHP5-Framework reingezogen: Das Yii-Framework. Neben symfony, CakePHP und dem Zend Framework hat man jetzt also [...]]]></description>
			<content:encoded><![CDATA[<p>Anders als es die Überschrift vielleicht vermuten läßt: nein, ich bin nicht genervt von der Tatsache, <em>noch</em> ein solches Ding entdeckt zu haben &#8211; im Gegenteil, ich würde es sonst für mich behalten.</p>
<p>Ich hab mir also noch ein weiteres PHP5-Framework reingezogen: Das <a title="Yii Framework" href="http://yiiframework.com" target="_blank">Yii-Framework</a>.<br />
Neben <a href="http://www.symfony-project.org" target="_blank">symfony</a>, <a href="http://cakephp.org" target="_blank">CakePHP</a> und dem <a title="Zend Framework" href="http://framework.zend.com" target="_blank">Zend Framework</a> hat man jetzt also noch eine Alternative mehr.</p>
<p>Yii bedient sich verschiedener vorhandener Konzepte aus anderen Frameworks wie hauptsächlich <a title="Prado PHP5-Framework" href="http://www.pradosoft.com/" target="_blank">Prado</a> und <a title="Ruby on Rails" href="http://rubyonrails.org/" target="_blank">Ruby on Rails</a> und erfindet somit nichts neues.</p>
<p>Yii selbst bezeichnet sich als hochperformantes komponentenbasiertes System, leicht zu verstehen, effizient und erweiterbar.</p>
<p>Der modulare Aufbau gefällt mir zum Beispiel sehr gut, was vielleicht am ehesten vergleichbar ist mit den Komponenten von <a title="Joomla" href="http://www.joomla.org" target="_blank">Joomla</a>.</p>
<p>Mit einer Shell lassen sich auch schnell CRUD-Anwendungen generieren, wie man es von symfony oder CakePHP (Bakery) kennt.</p>
<p>Yii ist auch sehr gut dokumentiert und bietet einige Tutorials und Demos zum sofort Nachvollziehen an.</p>
<p><strong>Mein Fazit:</strong> ein Blick lohnt sich auf jeden Fall.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mbischof.de/yii-noch-ein-php5-framework/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Einen WordPress Post per xml-rpc erzeugen</title>
		<link>http://blog.mbischof.de/einen-wordpress-post-per-xml-rpc-erzeugen</link>
		<comments>http://blog.mbischof.de/einen-wordpress-post-per-xml-rpc-erzeugen#comments</comments>
		<pubDate>Thu, 02 Apr 2009 11:43:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://blog.mbischof.de/?p=52</guid>
		<description><![CDATA[Da mein letzter Beitrag ja von flickr erzeugt wurde, habe ich mich gefragt, wie man selber WordPress-Artikel erzeugen kann über diese xml-rpc-Schnittstelle. Eigentlich ist das ganz einfach, wenn man von Zend die XmlRpc-Komponente benutzt. Vorraussetzung ist, dass WordPress die Kommunikation per xml-rpc zuläßt, was man in den Einstellungen festlegen kann. require_once 'Zend/XmlRpc/Client.php'; $client = new [...]]]></description>
			<content:encoded><![CDATA[<p>Da mein letzter Beitrag ja von flickr erzeugt wurde, habe ich mich gefragt, wie man selber WordPress-Artikel erzeugen kann über diese xml-rpc-Schnittstelle.</p>
<p>Eigentlich ist das ganz einfach, wenn man von Zend die XmlRpc-Komponente benutzt. Vorraussetzung ist, dass WordPress die Kommunikation per xml-rpc zuläßt, was man in den Einstellungen festlegen kann.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">require_once</span> <span style="color: #0000ff;">'Zend/XmlRpc/Client.php'</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$client</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Zend_XmlRpc_Client<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'http://blog.mbischof.de/xmlrpc.php'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$username</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'username'</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$password</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'password'</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$content</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
    <span style="color: #0000ff;">'title'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'Test'</span><span style="color: #339933;">,</span>
    <span style="color: #0000ff;">'description'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'Das ist nur ein Test'</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$result</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$client</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">call</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'metaWeblog.newPost'</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
    <span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span> <span style="color: #000088;">$username</span><span style="color: #339933;">,</span> <span style="color: #000088;">$password</span><span style="color: #339933;">,</span> <span style="color: #000088;">$content</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span>
<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>    
<span style="color: #990000;">var_dump</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$result</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://blog.mbischof.de/einen-wordpress-post-per-xml-rpc-erzeugen/feed</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
	</channel>
</rss>

