Heavymind
Gdyby ludzie rozmawiali tylko o tym, co rozumieją, zapadłaby nad światem wielka cisza.

26/07/2007

Smarty, układy strony, czyli zamieszanie wokół Zend_View

Opublikowane jako: Zend — Tags: , , , — Kubek Bartosz @ 23:30

Aktualnie jest to temat “na czasie”. Jak zintegrować “układ strony www” (”layouts”) z strukturą Zend Framework? Można przeczytać masę wątków na ten temat w internecie, jednak nigdzie nikt nie potrafi określić jednego spójnego standardu, nawet Zend. Temat ten stał się tymbardziej skomplikowany, gdy wraz z Zend Framework v.1.0 wprowadzono klasy pomocników kontrolera Zend_Controller_Action_Hepler_*, w szczególności chodzi o konkretną, Zend_Controller_Action_Helper_ViewRenderer. Jest to “helper”, który automatyzuje proces inicjalizacji oraz generowania zawartości na ekran z naszego obiektu Zend_View. Tak więc wiele obszarów, w których Zend Framework udostępnia możliwość implementacji “layout’ów”, wprowadza użytkowników w zmieszanie.

Inną rzeczą jest, iż Zend Framework udostępnia interfejs do implementacji innych silników szablonów, niż ten wbudowany w Zend_View. Mogą nimi być np. najbardziej popularne Smarty lub PEAR Sigma. Można nawet znaleźć propozycję implementacji Smarty jako silnik Zend_View w dokumentacji Zend Framework (tutaj).

W związku z tym wszystkim, chciałbym spróbować znaleźć własne i w mej opinii najlepsze rozwiązanie na zintegrowanie Smarty z Zend_View, jak i jednocześnie zaimplementować mechanizm do struktury “layout’owej” tworzonej aplikacji.

Tak więc jest to tylko zapowiedź kolejnego samouczka, który chciałbym napisać. Przyjaciel mój doradził mi, by tworzyć wideo-samouczki, jako bardziej treściwą formę przekazu. Rozważam taką opcję, choć decyzji dotychczas nie podjąłem.

Pozdrawiam



Smarty, layouts and Zend_View confusion

Opublikowane jako: Zend — Tags: , , , — Kubek Bartosz @ 23:30

It’s a hot topic recently. How to integrate layouts views into Zend Framework structure? You can read about solutions on many places, but actually nobody settled one common standard, not even Zend. This issue becomes more complicated after providing Zend_Controller_Action_Hepler’s with Zend Framework v.1.0, especially Zend_Controller_Action_Helper_ViewRenderer - a helper, that take care of initializing and displaying content from our view object automatically. Many options of implementing layouts, that users receive from Zend Framework makes them confusing.

Also there is an interface for implementing other template engines, like most used Smarty, or PEAR Sigma. You can find out a proposal class in Zend Framework manual (here), how to run Smarty as Zend_View template engine.

Regarding this, I’ll try to find out my own and best IMO way of merging Smarty into Zend Framework, as well as implementing basic layout construction at once.

So this is only an announcement of second tutorial I’m going to write down. Friend of mine advised me to create a video-tutorial, witch proposal I’m considerate. The decision haven’t been made, yet.

Greets



25/07/2007

koszmar z VirtualHost’ami w SuSE

Opublikowane jako: Apache — Tags: , — Kubek Bartosz @ 23:38

Chciałbym się podzielić problemem, który zawłaszczył sobie masę mego czasu przez ostatnie dni, a związany jest z vHostami serwera Apache2 zainstalowanego na sysyemie openSuse linux. Opisuję to, ponieważ mam nadzieję, że mój wywód będzie pomocny dla osób które również spotkają się z tym dziwnym problemem, a zaświadczam, iż rozwiązanie go to nie była łatwa rzecz (tym bardziej gdy rozwiązania szuka się głównie metodą własnych “prób i błędów”).
Tak więc moim celem było uruchomienie kilku vHostów na nowo postawionym serwerze Apache2. W tym celu stworzyłem następujące dyrektywy w pliku /etc/apache2/vhosts.d/vhosts.conf :

   <virtualhost *:80>
      ServerAdmin webmaster@somedomain.com
      DocumentRoot /srv/www/somedomain
      ServerName www.somedomain.com
      ServerAlias somedomain.com
   </virtualhost>
   <virtualhost *:80>
      ServerAdmin webmaster@elsedomain.com
      DocumentRoot /srv/www/elsedomain
      ServerName www.elsedomain.com
      ServerAlias elsedomain.com
   </virtualhost>
   <virtualhost *:80>
      ServerAdmin webmaster@otherdomain.com
      DocumentRoot /srv/www/otherdomain
      ServerName www.otherdomain.com
      ServerAlias otherdomain.com
   </virtualhost>

Uzupełnieniem tego było umieszczenie następujących linii w pliku /etc/hosts :

   127.0.0.1     www.somedomain.com
   127.0.0.1     somedomain.com
   127.0.0.1     www.elsedomain.com
   127.0.0.1     elsedomain.com
   127.0.0.1     www.otherdomain.com
   127.0.0.1     otherdomain.com

I to wszystko. Pozostaje już tylko zrestartować proces Apache poprzez:

   apache2ctl restart

i błąd gotowy! Oto co wyświetla się podczas uruchamiania ponownego instancji Apache:

   [Wed Jul 25 21:42:59 2007]
      [warn] _default_ VirtualHost overlap on port 80, the first has precedence

A cóż to oznacza? Pierwsza sekcja vHosta została potraktowana jako główna/domyślna, a każda następna po niej w jakiś niezrozumiały dla mnie sposób wchodzi w konflikt z tę pierwszą. Rezultatem tego jest, iż wywołując URL konfliktowego hosta (”elsedomain.com”, “otherdomain.com”) w przeglądarce internetowej, otrzymuję treść strony głównej hosta pierwszego, głównego (”somedomain.com”). Tego oczywiście nie chcemy.

Mam nadzieję, iż problem jest zrozumiały. Poniżej przykłady zmian, które nie przyniosły żadnej poprawy:
* zmiana dyrektyvy vHosta na:

   <virtualhost *:*>
      [...]
   </virtualhost>

* zmiana dyrektyvy vHosta na:

   <virtualhost 127.0.0.1:*>
      [...]
   </virtualhost>

* zmiana dyrektyvy vHosta na:

   <virtualhost 127.0.0.1:80>
      [...]
   </virtualhost>

* zmiana adresu IP in /etc/hosts na 127.0.0.2 oraz dyrektywy vHosta na:

   <virtualhost 127.0.0.2:80>
      [...]
   </virtualhost>

To co naprawdę pomogło, znajdywało się głównie w innym miejscu. Otóż dodałem nową linię na samym początku mego pliku vhosts.conf:

      NameVirtualHost 127.0.0.1

oraz zmodyfikowałem sekcje vHostów w taki oto sposób :

   <virtualhost 127.0.0.1:80>
      [...]
   </virtualhost>

Mimo iż jasne dla mnie było, że dyrektywa “NameVirtualHost” powinna się znajdywać w konfiguracji serwera Apache, było bardzo niełatwo wpaść na to, że to właśnie jej brakuje. Wciąż mnie zastanawia, czy jest to brak występujący tylko w dystrybucji SUSE10.2, czy może standardowo w Apache 2 nie ma jej. Z kolei zmiana znaku “gwiazdki” (*) na IP localhosta (127.0.0.1) była rzeczą oczywistą.

Jeśli więc napotkasz problem z ostrzeżeniem takim jak wyżej, mam nadzieję iż moja metoda okaże się pomocna.

Pozdrawiam



VirtualHosts nightmare on SUSE

Opublikowane jako: Apache — Tags: , — Kubek Bartosz @ 23:36

I’d like to share with time consuming problem I had last days with vHosts on Apache2 on openSuse linux. Maybe my solution will be helpful for someone, cause believe me, it’s was not easy to find solution (especially using “tries and faults” method).

So my point was to create and successful run few vHosts on my newly settled up Apache2 server. So I’ve created this vHost directives in /etc/apache2/vhosts.d/vhosts.conf :

   <virtualhost *:80>
      ServerAdmin webmaster@somedomain.com
      DocumentRoot /srv/www/somedomain
      ServerName www.somedomain.com
      ServerAlias somedomain.com
   </virtualhost>
   <virtualhost *:80>
      ServerAdmin webmaster@elsedomain.com
      DocumentRoot /srv/www/elsedomain
      ServerName www.elsedomain.com
      ServerAlias elsedomain.com
   </virtualhost>
   <virtualhost *:80>
      ServerAdmin webmaster@otherdomain.com
      DocumentRoot /srv/www/otherdomain
      ServerName www.otherdomain.com
      ServerAlias otherdomain.com
   </virtualhost>

After this, I had to also put new statements into /etc/hosts :

   127.0.0.1     www.somedomain.com
   127.0.0.1     somedomain.com
   127.0.0.1     www.elsedomain.com
   127.0.0.1     elsedomain.com
   127.0.0.1     www.otherdomain.com
   127.0.0.1     otherdomain.com

That’s all. Then I’ve restart apache service, by:

   apache2ctl restart

and here’s the result (and the problem itself) :

   [Wed Jul 25 21:42:59 2007]
      [warn] _default_ VirtualHost overlap on port 80, the first has precedence

What does it mean? The first vHost directive was treat as default one, and somehow every second vHost directive was in conflict with the default one. The The result of this conflict was, that after calling conflicted (means not the default ones) host name URL in browser (”elsedomain.com”, “otherdomain.com”) I got the content (main page) of the default host: “somedomain.com”.

So I hope the problem is clear. And here is what also didn’t work out:
* changing vHosts directive to:

   <virtualhost *:*>
      [...]
   </virtualhost>

* changing vHosts directive to:

   <virtualhost 127.0.0.1:*>
      [...]
   </virtualhost>

* changing vHosts directive to:

   <virtualhost 127.0.0.1:80>
      [...]
   </virtualhost>

* changing IP address in /etc/hosts to 127.0.0.2 and vHosts directive to:

   <virtualhost 127.0.0.2:80>
      [...]
   </virtualhost>

What does really help was something else. I’ve to add new line in the top of my vhosts.conf file:

      NameVirtualHost 127.0.0.1

and modify all vHosts sections this way:

   <virtualhost 127.0.0.1:80>
      [...]
   </virtualhost>

It was clear for me that “NameVirtualHost” should be there somewhere. Nevertheless, was very hard to find out that for default in Apache2 (or at least in his SUSE10.2 distribution) this directive is gone for default. Changing ‘*’ mark to localhost IP address (127.0.0.1) goes without saying.

So if You have problem with this warning above I’ve notice, my method should be helpful for You.

Greets



19/07/2007

Samouczek Zend Framework opublikowany

Opublikowane jako: Zend — Tags: , , — Kubek Bartosz @ 10:36

Z wielką przyjemnością oznajmiam, iż samouczek nad którym pracowałem przez ostatnie dwa tygodnie został ukończony i opublikowany. Aby z niego skorzystać zapraszam do działu “strony” w menu po prawej stronie, gdzie znajduje się link “Zend Framework Tutorial“.

Mam nadzieję, że zainteresowanym przyniesie wiele pożytku i radości ;o)
Pozdrawiam



Zend Framework Tutorial has been published

Opublikowane jako: Zend — Tags: , — Kubek Bartosz @ 10:32

I’m glad that I have finally finish my polish version of Zend Framework tutorial. It’s available on this blog webpage on the right hand side, in the section “strony” (”pages”).

Hope You speak polish, so You could read it ;o)
Greets



10/07/2007

Zend Framework 1.0.0 tutorial

Opublikowane jako: Zend — Tags: , , — Kubek Bartosz @ 20:02

Wszyscy zainteresowani tym wspaniałym frameworkim już na pewno wiedzą o tym że wersja Zend Framework 1.0.0 ukazała się około dwa tygodnie temu.

Być może spora grupa zainteresowanych tym frameworkiem zauwałyła, że w całej polskiej scenie PHP nie ma porządnego samouczka dla Zend Framework.

Postanowiłem więc wziąć sprawy w swoje ręce. Skontaktowałem się z osobą, która swego czasu napisała bardzo przyjemny w zrozumieniu samouczek w języku angielskim. Mało tego, samouczek Roba Allen jest prawdopodobnie najbardziej aktualnym względem najnowszej wersji Zend Framework 1.0.0 w całej sieci.

Po uzyskaniu zgody Roba, ogłaszam iż przygotowuję samouczek Zend Framework do najnowszej wersji 1.0.0. Z pewnością przyda się początkującym lub chcącym zacząć przygodę z Zend Framework.



Zend Framework 1.0.0 tutorial

Opublikowane jako: Zend — Tags: , — Kubek Bartosz @ 20:02

I assume that everybody, that already are introduced in to this great and famous framework knows, that version of to Zend Framework 1.0.0 has came out about two weeks ago.Could it be, that also lot of people did noticed, that there is no good tutorial of Zend Framework in whole polish PHP community.

I’ve decide to take things in my hands. I’ve contact with person, who made a very good tutorial in english some time ago. What’s more, I’ve found out that probably in entire network there is no so such updated tutorial than Rob Allen made .

So after Rob’s permission, I’d like to announce that I’m going to prepare first Zend Framework 1.0.0 tutorial in polish, written on the base of Rob’s one. I’m sure it will be helpful to all polish community, that didn’t have occasion to experience it already.



Witaj świecie!

Opublikowane jako: Off topic — Kubek Bartosz @ 18:00

Weblog
Jako że większość swego czasu spędzam z moim najlepszym kolegą, programowaniem, chciałbym móc swoim doświadczeniem podzielić się na forum publicznym. Stąd też ten kolejny blog. Tym razem głównie w tematyce IT.

Heavymind
Nazwa ta ma dla mnie szczególne znaczenie, ponieważ jest to wspólny sztandar dla wszystkich moich pomysłów na projekty web serwisów od samego początku mej przygody z programowaniem.

Technologie
Jako ze od lat jestem głęboko zakorzeniony w tematyce PHP, treść tego bloga będzie sie dotykać właśnie tego języka programowania w szczególności. Z czasem mam nadzieję, że moja znajomość z nowym kolegą, Javą również przyniesie owoce, którymi będę mógł się podzielić. Poza tym Apache, MySQL, SVN są tematami które także zdążyłem poznać w szczególnośći. W końcu dzięki nim moja praca i przygoda z PHP jest możliwa.

Dwa języki?
Będzie to dla mnie wysiłkiem by móc treść udostępnić dla szerszego grona odbiorców, poprzez przekładanie na angielski. Mimo tego mam zamiar spróbować by posty były dostępne również w tym uniwersalnym języku.

Co dalej?
Zobaczymy. Z pewnością jeśli w/w hasła zaciekawiły cię mój drogi czytelniku, zapraszam do subskrybowania kanałów RSS mego bloga: wpisów i komentarzy.



Hello Word!

Opublikowane jako: Off topic — Kubek Bartosz @ 15:31

Weblog
Since most of my time I spend with my best friend, programming, I’d like to share my experience for public. That’s why following of my weblog was created, IT related this time though.

Heavymind
This is a key name for me with special meaning. It’s a common headline for all my ideas of web projects from early past of my programming journey.

Technologies
Since I’m an addict PHP programmer for years now ;o), this weblog content will be mostly about this language techniques and solutions. I’m hopefilly, that with some time, my actual friendship with very new friend, Java, will also bring some results, that I could share with. Besides of this, Apache, MySQL and Subversion are things that I’ve known at advanced level. At least my fun with PHP wouldn’t be possible without them.

Two languages?
Will it be some effort for me to translate my posts from it’s original polish language to english, but I’m sure it’s worth of it. First of all some of my friends are non polish speakers. Also I’d like to have this weblog available in global scope. Because of this I’ll try to make it possible to read most of my posts also in english.

What’s next?
We will see. For sure, if You’ve found above interesting, You defiantly should use this blogs posts as well as comments RSS feeds.



Oparte na WordPress