luq techblog

o tworzeniu słów kilka…

Silnik w PHP 20 Maj 2009

Filed under: PHP,Programowanie — Łukasz @ 22:46
Tags: , , ,

Witam po bardzo długiej przerwie. Jak można było się dowiedzieć z poprzednich wpisów przerwa była spowodowana natłokiem zajęć które aktualnie zwaliły mi się na głowę. W tym czasie znalazłem prace ;) a dokładniej rzecz biorąc, dość duże zlecenie na stronę www. Zlecenie te zmotywowało mnie do dokończenia (a właściwie napisanie od nowa, na podstawie tego co tam wcześniej kiedyś napisałem) własnego silnika do tworzenie stron. Specjalnie nie nazywam tego frameworkiem, bo uważam, że to słowo jest za duże. Całość nazwałem Qul Engine. Myślę, że nie trudno się domyśleć od czego powstało tajemnicze „Qul” :]

 

Ktoś pewnie zapyta, po co pisać własny silnik jeśli mamy do dyspozycji tyle znakomitych maszynek do budowania stron – Symfony, Kohana, Zend Framework itd.? A no, po to aby się czegoś nauczyć. Osobiście nigdy nie pracowałem w oparciu o jakikolwiek framework, tylko nieco o nich czytałem, dlatego przy pisaniu zlecenia obawiałem się, że powstaną problemy nad którymi będę musiał długo posiedzieć, grzebać po dokumentacji itd. Kolejnym powodem było to, że lepiej coś napisać i poznać na jakiej zasadzie to działa, niż zaraz brać się korzystanie z gotowego rozwiązania. Umiesz takie coś napisać = korzystaj z gotowego rozwiązania, tworzonego i rozwijanego przez zespół, żeby było jasne, ta zasada obowiązuje jedynie na niższym poziomie wtajemniczenia. W końcu programista nie będzie pisał własnego sys. operacyjnego. Może ktoś zarzuci odkrywanie koła na nowo, ale czy nie na tym polega nauka? Jeśli samemu wpadnie się na jakieś rozwiązanie to się o nim pamięta.

 

Nie zamieszczę tutaj paczki ze spakowanym silnikiem, bo raz, jest to prywatny silnik, który nie będzie nigdzie publikowany, dwa, miejscami kod mi się nie podoba – działać, działa no ale… Chciałby tylko przedstawić ogólny jego zarys bo sam na początku nie wiedziałem jak takie coś pisać, może się komuś przyda, a może ktoś skrytykuje i będzie motorem napędowym rozwoju silnika :)

 

Na początek, może co umożliwia mój silnik:

  • łatwa obsługa wielu języków
  • obsługa wielu baz danych
  • przyjazne URLe, programowanie zdarzeniowe w PHP (standardowa klasa Router + Dispacher)
  • przyjemna walidacja formularzy
  • wykorzystanie szablonów Smarty
  • łatwe osadzanie JS`a, generowanie kodu JS za pomocą PHP

To tyle, jeśli chodzi o Qul Engine v. 0.1.1 alpha

 

Prosty przykład (niestety na domenie wordpress.com nie mam mozliwości wgrania jakiegoś plugina kolorującego składnie :( czas pomyśleć o własnym serwie):

 

controller/IndexController.class.php
http://wklej.org/id/93427/

 

templates/templates/index/hello.tpl
http://wklej.org/id/93404/

 

+ tam lang/pl/hello.lang.php (oraz lang/en/hello.lang.php, który wygląda tak samo tyle że inny string w komórce):

<?php
$language['hello_text'] = 'Witaj świecie';
?>

 

style.css nie są dla nas ważne.

 

I w kilka chwil powstała prosta stronka. Po podaniu adresu http://www.example.com/przyklad lub http://www.example.com/przyklad/index lub http://www.example.com/przyklad/index/index umożliwia przełączanie języka, i pokazywanie zgodnie z tym językiem odpowiednio zmodyfikowany tekst. Wygląda to tak:
Qul Engine v. 0.1.1 alpha

Na dziś tyle, może potem coś skrobnę o pisaniu engina w PHP.

Reklamy
 

One Response to “Silnik w PHP”

  1. Do tej pory także korzystałem z własnego silnika [nazywałem go biblioteką] do obsługi stron internetowych, ale ostatnio zacząłem korzystać z frameworka symfony i szczerze go polecam. Jeśli chciałbyś podyskutować o własnym „silniku”, to zapraszam, mogę się podzielić doświadczeniami, które zdobyłem używając własnych rozwiązań.


Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj / Zmień )

Facebook photo

Komentujesz korzystając z konta Facebook. Wyloguj / Zmień )

Google+ photo

Komentujesz korzystając z konta Google+. Wyloguj / Zmień )

Connecting to %s