<?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>Kadir Özdemir &#187; zf-proje</title>
	<atom:link href="http://www.skorp.eu/tag/zf-proje/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.skorp.eu</link>
	<description>Programlama, Güvenlik, Design ve hayatimdan kesintiler</description>
	<lastBuildDate>Fri, 02 Dec 2011 14:29:38 +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>Zend Framework türkce tutorial 1</title>
		<link>http://www.skorp.eu/2009/04/03/zend-framework-turkce-proje-bootstrap-sistem-hazirlama/</link>
		<comments>http://www.skorp.eu/2009/04/03/zend-framework-turkce-proje-bootstrap-sistem-hazirlama/#comments</comments>
		<pubDate>Fri, 03 Apr 2009 11:00:47 +0000</pubDate>
		<dc:creator>Skorp</dc:creator>
				<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[zf-proje]]></category>

		<guid isPermaLink="false">http://www.skorp.eu/?p=256</guid>
		<description><![CDATA[serimizin ilk yazisinda öncelikle calisma ortamimizi ayarliyacagiz, ardindan baslamak icin gerekli olan dosyalari ve ayarlari yapacagiz. Ben bu kütüphaneye kitapcik adi veriyorum ondan kullanacagim domain ismi kendi bilgisayarimda kitapcik.dev olacak. Öncelikle bunu ayarlamak icin secmis oldugunuz domain ismini Linux da /etc/hosts ve Windows da c:\windows\system32\drivers\etc\hosts dosyasi icine yazmamiz gerekiyor. ardindan vhosts dosyanizi bulup icine bir [...]]]></description>
			<content:encoded><![CDATA[<p>serimizin ilk yazisinda öncelikle calisma ortamimizi ayarliyacagiz,<br />
ardindan baslamak icin gerekli olan dosyalari ve ayarlari yapacagiz.<br />
Ben bu kütüphaneye kitapcik adi veriyorum ondan kullanacagim domain ismi kendi bilgisayarimda <strong>kitapcik.dev</strong> olacak.<br />
Öncelikle bunu ayarlamak icin secmis oldugunuz domain ismini Linux da <em>/etc/hosts</em> ve<br />
Windows da <em>c:\windows\system32\drivers\etc\hosts</em> dosyasi icine yazmamiz gerekiyor.</p>
<pre class="brush: plain; title: ; notranslate">127.0.0.1	kitapcik.dev </pre>
<p>ardindan vhosts dosyanizi bulup icine bir vhosts eklemeniz grekiyor.<br />
xampp da bu dosya <em>C:\xampp\apache\conf\extra\httpd-vhosts.conf</em></p>
<p>Vhosts u eklemeden önce tüm dosyalarimizin bulunacagi klasörün yerini tespit edelim.</p>
<p>Ben suan bu makaleyi yazarken Windows da calistigim icin örnegide ona göre verecegim, linuxcular kendilerine göre ayarlasinlar.<br />
benim tüm dosyalarim: <em>c:\xampp\htdocs\kitapcik\</em> klasörü altinda olacak.</p>
<p><strong>Kisaca dizin yapimiza bakalim.</strong><br />
<img src="http://www.skorp.eu/pics/structure.gif" alt="Structure" /><br />
dizin yapisi sizin bilgisayarinizdada aynen bu sekilde olmasi lazim.</p>
<p>simdi vhost umuzu ayarliya biliriz.</p>
<p><strong>örnek:</strong></p>
<pre class="brush: plain; title: ; notranslate">
&lt;virtualhost *:80&gt;
    ServerName kitapcik.dev
    DocumentRoot &quot;c:\xampp\htdocs\kitapcik\html&quot;
    ErrorLog logs/kitapcik-error_log
    CustomLog logs/kitapcik-access_log common
&lt;/virtualhost&gt;
</pre>
<p>bunu vhosts dosyasi icine ekleyiniz ve ardindan <strong>apache yi yeniden baslatiniz</strong>.</p>
<p>simdi html klasörü icinde bir <strong>index.html</strong> olusturup icine herhangi birsey yazin</p>
<p>mesela:<br />
<code>bu bir test sayfasidir</code></p>
<p>ve ardindan herhangi bir Browserde <em>kitapcik.dev</em> ziyaret ettinizmi bu yaziyi görüyorsaniz herseyi simdiye kadar dogru yaptiniz demektir.</p>
<p>simdi <a href="http://framework.zend.com/">ZF in sitesinden</a> <strong>Zend Framework x.x.x Full.zip</strong> i indirin biryere kaydedin icinden isimizi görecek olan dosyalari alacagiz sadece.<br />
<em>library</em> klasöründen <em>Zend</em> klasörünü tüm icerigiyle birlikde lib klasörümüzün icine kopyaliyalim.<br />
<em>extras/library</em> klasörü icinden <em>ZendX</em> klasörünü da lib klasörü icine kopyalayalim.</p>
<p>Tüm uygulamada resimler, css dosyalari, ve js dosyalari disinda, disaridan erisile bilinicek tek dosyamiz <em>index.php</em> olacak.<br />
Bu ne manaya geliyor, sitemizin her sayfasina giden yol index.php den geciyor onun icin bu dosyamizin adi <strong>bootstrap</strong> dosyasi.<br />
Bir <strong>MVC</strong> (Model-View-Controller) uygulamasinda, (burda oldugu gibi) disaridan erisile bilinen tek dosya Bootstrap dosyasi olmalidir.<br />
bu dosya kisaca Front-Controller den bir instance (örnek) alip onun dispatch() metodunu calistiriyor.</p>
<p>Sitemize giden tüm isteklerin (request) index.php den yönlenmesi icinde yapmamiz gerekenler var.</p>
<p>öncelikle php de <em>mod_rewrite</em> modulu aktif halde olmasi lazim.<br />
aktife degilse xampp kullanicilari mod_rewrite i buradan aktif hale getire bilirler.<br />
<em>c:/xampp/apache/conf/httpd.conf</em> </p>
<p><code>LoadModule rewrite_module modules/mod_rewrite.so</code><br />
 satirin basindaki ; kaldirin ve kaydedin ardindan apache yi yeniden baslatmaniz gerekiyor.</p>
<p>evet simdi html klasörü icine , tüm istekleri index.php ye yönlendiricek bir .htaccess dosyasi ekliyelim.<br />
dosyanin icerigi bu sekilde olmalidir.</p>
<p><code>RewriteEngine On<br />
RewriteCond %{REQUEST_FILENAME} -s [OR]<br />
RewriteCond %{REQUEST_FILENAME} -l [OR]<br />
RewriteCond %{REQUEST_FILENAME} -d<br />
RewriteRule ^.*$ - [NC,L]<br />
RewriteRule ^.*$ /index.php [NC,L]</code></p>
<p>ardindan<br />
application klasörü icine bir bootstrap.php adinda bir dosya olusturalim.</p>
<p>evet artik browserde ne yazarsak index.php dosyamiz gelecek.<br />
Hmmmmm bizim henüz index.php dosyamiz yokki diyeceksiniz haklisiniz, baslarda olusturdugumuz index.html dosyasini silip yerine bir <em>index.php</em> dosyasi olusturalim.<br />
icine bu satirlari ekliyelim ve kaydedelim.</p>
<pre class="brush: php; title: ; notranslate">
&lt; ?php
require '../application/bootstrap.php';
</pre>
<p>index.php nin icerigi sadece bukadar.<br />
ardindan application/bootstrap.php dosyamizi inceliyelim.</p>
<pre class="brush: php; title: ; notranslate">
&lt; ?php
defined('APPLICATION_PATH') or define('APPLICATION_PATH', realpath(dirname(__FILE__)));
defined('APPLICATION_STATE') or define('APPLICATION_STATE', 'development');
defined('LIB_PATH') or define('LIB_PATH',realpath(dirname(APPLICATION_PATH).&quot;../lib&quot;));
// lib klasörümüzü include pathe eklememiz gerekiyorki gerekli Zend siniflari yüklenirken sorun yasamiyalim.
set_include_path(LIB_PATH. PATH_SEPARATOR .get_include_path());

//tüm Zend siniflarinin otomatikmen yüklenmesi icin Autoloader i aktif hale getiriyoruz, bunu yapmassaniz heryerde require_once yada include kullanmaniz gerekecek
require_once('Zend/Loader.php');
Zend_Loader::registerAutoload();

require_once LIB_PATH.'/plugins/Initializer.php';

// front controller objesini olusturalim
$front = Zend_Controller_Front::getInstance();
//ayar Pluginini kayit edelim
$front -&gt; registerPlugin(new Kitapcik_Plugin_Initializer(APPLICATION_STATE,APPLICATION_PATH));

$front -&gt; throwExceptions(false);

$front -&gt; dispatch();
</pre>
<p>lib/plugins klasörüne bir initialize.php olusturalim, ekteki dosyadan gerekli icerigi oraya ekliyelim.<br />
<em>initialize.php</em>  de yapilan tüm ayarlara gerekli aciklamalar dosya icinde yorum (comment) olarak yapildi.<br />
<em>Initialize.php</em> bir Plugindir daha genis bilgi icin <a href="http://framework.zend.com/manual/en/zend.controller.plugins.html">tikla</a></p>
<p>Simdi application klasörü icinde <em>settings.ini</em> diye bir dosya olusturup bunlari icine kopyaliyalim.</p>
<pre class="brush: plain; title: ; notranslate">
[production]
db.adapter = &quot;pdo_mysql&quot;
db.params.host = &quot;localhost&quot;
db.params.dbname= &quot;kitapcik&quot;
db.params.username = &quot;root&quot;
db.params.password = &quot;&quot;
</pre>
<p><em>host, dbname, username, password</em> alanlarini lütfen kendi db bilgilerinizle degistirin.</p>
<p>action lardan ve controllerden konusmadan önce adres yapisina bakalim ZF in</p>
<p>domainden sonra ilk parca <strong>controller</strong> ikinci parca <strong>action</strong> olur.</p>
<p>modular bir yapiya sahipsek ilk parca module, ikinci controller ve ücüncü action olur.</p>
<p><strong>örnek:</strong><br />
<em>skorp.eu/tutorial/zfbaslangic</em></p>
<p>tutorial controllerimiz oluyor<br />
zfbaslangic ise tutorial controllerinde bulunan action umuz.</p>
<p>herhangi bir controller veya action verilmemisse Index varsayilir ve o controller action calistirilir.</p>
<p>Zend_Controller in dispatcher&#8217;i controller adinda, standard controller klasöründe bir <em>Sinif</em> arar. sinif adi su sekilde olmalidir<br />
<em><controlleradi>Controller</controlleradi></em> mesela <em>TutorialController.php</em> dikkat edilmesi gereken Tutorial in T si büyük yazilmali.</p>
<p>Hemen hemen ayni sekilde Action belirlenir: Action da dikkat edilmesi gereken Action in tümü kücük harflerden olusmasi lazim, sonuna eklenen Action kisminin A harfi büyük<br />
örnek: public function zfbaslangicAction() {}</p>
<p>Ana sayfamizin controllerini ve Action unu yazalim bakalim.<br />
application/controllers/IndexController.php</p>
<pre class="brush: php; title: ; notranslate">
class IndexController extends Zend_Controller_Action
{

    public function indexAction()
    {
    	$this-&gt;_redirect('/index/liste');
    }
     public function listeAction() {
	$this-&gt;view-&gt;header =&quot;Kitapcik liste&quot;;

     }
}
</pre>
<p>Standard olarak <em>Viewrenderer</em> (<a href="http://framework.zend.com/manual/en/zend.controller.actionhelpers.html">action-helper</a>) acik olur.<br />
Yani Action cagrildiginda o Action adinda bir View script varmi diye kontrol edilir yoksa hata gösterilir varsa action un icerigi.</p>
<p>Simdi Views/scripts/ klasörü icine bir index (Controller ismi) klasorü olusturlaim icine bir liste.phtml (action ismi) kayit edelim<br />
liste.phtml icerigi su sekilde ola bilir suan.</p>
<pre class="brush: php; title: ; notranslate">
&lt; ?= $this-&gt;headTitle('Kitapcik liste'); ?&gt;

Slm dünya
</pre>
<p>Layouts klasöründe layout.phtml adinda dosya olusturlaim icine bunlari kayit edelim.</p>
<pre class="brush: php; title: ; notranslate">
&lt; ?= $this-&gt;doctype(); ?&gt;
&lt;html&gt;

	&lt;head&gt;
		&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot; /&gt;
		&lt; ?php
		echo $this-&gt;headTitle();
	    echo $this-&gt;headScript();
	    echo $this-&gt;headStyle();
		echo $this-&gt;headLink()-&gt;appendStylesheet('/css/main.css')
	    ?&gt;
	&lt;/head&gt;

	&lt;body&gt;
		&lt;center&gt;
		&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;maintable&quot;&gt;
				&lt;tr&gt;
					&lt;td colspan=&quot;2&quot;&gt; &lt;h2&gt;&lt; ?php echo $this-&gt;escape($this-&gt;header); ?&gt;&lt;/h2&gt;&lt;/td&gt;
				&lt;/tr&gt;
				&lt;tr&gt;
						&lt;td class=&quot;navigation&quot;&gt;
						&lt;ul&gt;
							&lt;li&gt;Home&lt;/li&gt;
							&lt;li&gt;ekle&lt;/li&gt;
							&lt;li&gt;iletisim&lt;/li&gt;
						&lt;/ul&gt;
						&lt;/td&gt;
						&lt;td class=&quot;main&quot;&gt;&lt; ?= $this-&gt;layout()-&gt;content ?&gt;&lt;/td&gt;
				&lt;/tr&gt;
		&lt;/table&gt;
		&lt;/center&gt;
	&lt;/body&gt;

&lt;/html&gt;
</pre>
<p><em>$this-></em> ile basliyanlar birer View Helper dir.<br />
Sürekli View de lazim olan fonksiyonlari view Helper olarak olusturursaniz, Tüm Viewlarda kullana bilrisiniz.<br />
ZF ile gelen birsürü View Helper var, View Helperler hakkinda daha genis bilgi icin <a href="http://framework.zend.com/manual/en/zend.view.helpers.html">tikla</a></p>
<p>Örnek olarak Headtitle ViewHelperine bakalim.<br />
Her sayfada degisik title kullanmak icin bunu kullana bilirsiniz.<br />
layout.phtml ve liste.phtml de ki kullanimina bakiniz.</p>
<p>Kisaca Layout lara da deyinelim, layout u sayfanin plani olarak düsünün, sayfanin görünümü, yapisi, vs. bu layout dosyasinda ayarlayin, birtek sürekli degisen icerigi layout a ekliyecegiz onu bu satirla yapa<br />
biliriz.</p>
<p><code>< ?= $this->layout()->content ?></code></p>
<p>view den gelen veri bu bölüme eklenecektir.</p>
<p>simdi Browseriizde <em>kitapcik.dev</em> yazalim bakalim ne görecegiz.</p>
<p>asagidaki resme benzer birsey görüyorsaniz herseyi dogru yaptiniz demektir.<br />
<img src="http://www.skorp.eu/pics/bootstrap.gif" alt="Bootstrap" /><br />
Ilk yazimizin burda sonuna geldik.</p>
<p>Soru ve hatalari burada veya <a href="http://n2.nabble.com/ZF-Turk-f2508457.html">Zend Framework türkce Forum</a> dan yaza bilirsiniz.</p>
<p><strong><a href="http://www.skorp.eu/pics/zip/ZF-Tutorialpart1.zip">Kodlari DOWNLOAD</a>: </strong> ZF i kendiniz indirip makalede yazdigi gibi lib klasörüne yüklemeniz gerekiyor.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.skorp.eu/2009/04/03/zend-framework-turkce-proje-bootstrap-sistem-hazirlama/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Zend Framework örnek Proje adim adim</title>
		<link>http://www.skorp.eu/2009/04/03/zend-framework-ornek-proje-adim-adim-tutorial/</link>
		<comments>http://www.skorp.eu/2009/04/03/zend-framework-ornek-proje-adim-adim-tutorial/#comments</comments>
		<pubDate>Fri, 03 Apr 2009 10:47:05 +0000</pubDate>
		<dc:creator>Skorp</dc:creator>
				<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[zf-proje]]></category>

		<guid isPermaLink="false">http://www.skorp.eu/?p=253</guid>
		<description><![CDATA[Zend Framework üzerine Türkce kaynak yok denile bilecek kadar az oldugu icin, ben kendimce bir Zend Framework serisi baslatmaya karar verdim. (Yazimin devaminda Zend Framework ü ZF ile kisaltacagim.) bu seri ile kendi Firmamiza ait, ZF ile yazilmis, ZF in bircok bilesenini kullanmis, bir Kitab kütüphanesi olusturacagiz. - Kitablarimizin listesini göre bilecegiz (herkez) - eski [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Zend Framework</strong> üzerine Türkce kaynak yok denile bilecek kadar az oldugu icin,<br />
ben kendimce bir Zend Framework serisi baslatmaya karar verdim.<br />
(Yazimin devaminda Zend Framework ü ZF ile kisaltacagim.)<br />
bu seri ile kendi Firmamiza ait, ZF ile yazilmis, ZF in bircok bilesenini kullanmis, bir Kitab kütüphanesi olusturacagiz.<br />
- Kitablarimizin listesini göre bilecegiz (herkez)<br />
- eski Kitaplari silebilecegiz (sade admin)<br />
- yeni aldigimiz Kitaplari kütüphanemize ekliye bilecegiz (sade admin)<br />
- üye olmiyanlarin bize yeni kitaplarini bildire bilecegi bir iletisim formu</p>
<p>asagida görmüs oldugunuz ZF bilesenlerini bu tutorial cercevesinde kullanacagiz.<br />
Zend_Acl<br />
Zend_Auth<br />
Zend_Config<br />
Zend_Controller<br />
Zend_Controller_Router<br />
Zend_DB<br />
Zend_Filter<br />
Zend_Form<br />
Zend_Form_Captcha<br />
Zend_Mail<br />
Zend_Log<br />
Zend_Validate<br />
Zend_View</p>
<p><strong>Gereksinimler:</strong><br />
apache<br />
php > 5.1.4<br />
php > mod_rewrite<br />
Mysql </p>
<p>calisiyor halde olmasi lazim.<br />
Bilgisayarinizda henüz bunlar kurulu degilse size <a href="http://www.apachefriends.org">xampp</a> öneririm, indirin kurun ve okumaya devam edin.</p>
<p>Yazimiza baslarken suan icin aktuel <strong>ZF-versiyonu: 1.7.8</strong><br />
daha ilerki versiyonlarda sorun olacagini düsünmüyorum, egerki olursa ve bunu bana okurlarimiz bildirirse, zaman buldukca güncellestirmeye calisacagim.</p>
<p>Arkadaslar, her bileseni tek tek anlatacak degilim, bu tutorial zf e yeni basliyanlara,basta birazda olsa yardimci olsun ve  ZF ile yapilmis kücük de olsa bir Proje görsünler diye yapiliyor.<br />
Ondan genis bilgi icin lütfen <a href="http://framework.zend.com/manual/en">ZF in sitesine</a> buyrun veya anlamadiginiz yerleri konularin altina mesaj olarak yaza bilirsiniz. </p>
<p>Veya <a href="http://n2.nabble.com/ZF-Turk-f2508457.html">Zend Framework &#8211; TÜRKCE FORUM</a> BEKLERIM.</p>
<p><strong>TUTORIAL Parts:</strong><br />
- <a href="http://www.skorp.eu/2009/04/03/zend-framework-turkce-proje-bootstrap-sistem-hazirlama/">Sistemi hazirliyalim (Vhosts) , Bootstrap dosyasi</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.skorp.eu/2009/04/03/zend-framework-ornek-proje-adim-adim-tutorial/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

