Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP5] Framework dla najmłodszych, PHP5, OOP, "MVC"
hwao
post
Post #1


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




Jako że mi się troche nudziło, a pozatym chce sobie napisać na szybko prostą strone napisałem bardzo prostego frameworka w php.

Główne zalozenia to do pisania prostych stronek blog/ksiega gosci/wyswietlanie roznych danych. Jest napisany tak zeby nie miec burdelu w kodzie i w miare ładnie to rozpisane, czyli nie mieszkac warstwy biznesowej z szablonami.

Zip: http://hwao.strefaphp.net/poligon/framework.zip
Source online: http://hwao.strefaphp.net/subdomains/repos...-php5/index.php
<span style="font-style: italic;">Po lewej <span style="font-weight: bold;">framework-php5</span></span>...

Postanowiłem pokazać, może jakiemus poczatkujacemu programiscie troche rozjasni w głowie, jak zwykłe czekam na pytania - chetnie odpowiem.

Oczywiscie jak coś będe pisał to kod sie bedzie rozbudowywał, wiec bede wrzucał poprawione czesci, jezeli ktos coś dopisze to też może pokazać - chetnie dodam.

Pozdrawiam

Poprawiłem linki, do źródeł
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
hwao
post
Post #2


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




Dobra dodam jeszcze dziś WebRequest:

  1. <?php
  2.  
  3. /**
  4.  * WebRequest
  5.  * 
  6.  * @author Paweł `hwao` Halicki
  7.  * @version 1.0.0
  8.  */
  9.  
  10. if( !defined( 'SECURITY' ) ) {
  11. die( 'SECURITY' );
  12. }
  13.  
  14. class WebRequest {
  15. /**
  16.  * Obiekt WebRequest
  17.  *
  18.  * @var object WebRequest
  19.  */
  20. static private $WebRequest = null;
  21.  
  22. /**
  23.  * Dane żądania
  24.  *
  25.  * @var array
  26.  */
  27. private $_GET = array();
  28. private $_POST  = array();
  29. private $_COOKIE = array();
  30.  
  31. /**
  32.  * Klucze
  33.  *
  34.  */
  35. const GET = 1;
  36. const POST  = 2;
  37. const COOKIE = 3;
  38.  
  39. /**
  40.  * Czy sa "magniczne znaki" :) czyli zmora kazdego (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
  41.  */
  42. protected $bMagicQuotes = true;
  43.  
  44. /**
  45.  * Konstruktor
  46.  *
  47.  */
  48. protected function __construct() {
  49. //- Celowo referecja, nie usuwam tych danych chyba ze ktos chce to niech przerobi
  50. $this->_GET = & $_GET;
  51. $this->_POST  = & $_POST;
  52. $this->_COOKIE = & $_COOKIE;
  53.  
  54. // unset( $_GET, $_POST, $_COOKIE );
  55. $this->bMagicQuotes = get_magic_quotes_gpc();
  56. }
  57.  
  58. /**
  59.  * Wyjmowanie interesujacego nas parametru :)
  60.  *
  61.  * @param string $sKey - co nas interesuje
  62.  * @param string/int $mFrom - gdzie szukac get/post/cookie
  63.  * @param bool $bHtml - czy maja byc znaczniki html'a escejpowane
  64.  * @param bool $bDatabase - czy dane beda zapisywane w bazie danych
  65.  * @param string $sSyntax - dodatkowe formatowanie
  66.  * @return string/array
  67.  */
  68. public function getParam( $sKey, $mFrom = self::GET , $bHtml = false, $bDatabase = false, $sSyntax = null ) {
  69. switch( strtolower( $mFrom ) ) {
  70. case self::GET:
  71. case 'get':
  72. case 'g':
  73. return $this->prepareParam( $this->getVars( $this->_GET, $sKey ), $bHtml, $bDatabase, $sSyntax );
  74. break;
  75. case self::POST:
  76. case 'post':
  77. case 'p':
  78. return $this->prepareParam( $this->getVars( $this->_POST, $sKey ), $bHtml, $bDatabase, $sSyntax );
  79. break;
  80. case self::COOKIE:
  81. case 'cookie':
  82. case 'c':
  83. return $this->prepareParam( $this->getVars( $this->_COOKIE, $sKey ), $bHtml, $bDatabase, $sSyntax );
  84. break;
  85. default:
  86. return null;
  87. break;
  88. }
  89. }
  90.  
  91. /**
  92.  * Zwraca wartosc
  93.  *
  94.  * @param array $aArray
  95.  * @param string $sParam
  96.  * @return mix
  97.  */
  98. private function getVars( $aArray, $sParam ) {
  99. return array_key_exists( $sParam, $aArray ) ? $aArray[$sParam] : null;
  100. }
  101.  
  102. /**
  103.  * Przygotowanie danych
  104.  *
  105.  * @param string/array $mParam
  106.  * @package bool $bHtml
  107.  * @param bool $bDatabase
  108.  * @param string $sSyntax
  109.  * @return string/array
  110.  */
  111. private function prepareParam( & $mParam, & $bHtml, & $bDatabase, & $sSyntax ) {
  112. if( is_array( $mParam ) ) {
  113. foreach( $mParam As $sKey => $mValue ) {
  114. $mParam[$sKey] = $this->prepareParam( $mValue, $bHtml, $bDatabase, $sSyntax );
  115. }
  116. return $mParam;
  117. }
  118.  
  119. if( $this->bMagicQuotes == true ) {
  120. $mParam = stripslashes( $mParam );
  121. }
  122.  
  123. if( $bHtml == true ) {
  124. $mParam = htmlentities( $mParam, ENT_COMPAT, 'UTF-8' );
  125. }
  126.  
  127. if( $bDatabase == true ) {
  128. $mParam = mysql_escape_string( $mParam );
  129. }
  130.  
  131. if( !is_null( $sSyntax ) ) {
  132. $mParam = sprintf( $sSyntax, $mParam );
  133. }
  134.  
  135. return $mParam;
  136. }
  137.  
  138. /**
  139.  * Pobranie instancji
  140.  * 
  141.  * @return object WebRequest
  142.  */
  143. static public function Get() {
  144. if( is_null( self::$WebRequest ) ) {
  145. return self::$WebRequest = new WebRequest();
  146. }
  147. return self::$WebRequest;
  148. }
  149. }
  150. ?>


Służy do obslugi tego co klient nam wysyla (zostały jeszcze $_FILES ale to osobny obiekt)...

Uzycie
Żądanie: http://strona.pl/?hwao='cos%20%3Cb%3Eb...#39;%jazda'
Typ żądania : GET

Kod php:
  1. <?php
  2.  
  3. $Request = WebRequest::get();
  4. $getHwao = $Request->getParam( 'hwao', 'Get', true );
  5.  
  6. var_dump( $_GET['hwao'] );
  7. var_dump( $getHwao );
  8.  
  9. ?>

Wyniki:
Kod
'\'cos <b>bold</b>Where `hwao` Like \'%jazda\'' (length=45)
''cos &lt;b&gt;bold&lt;/b&gt;Where `hwao` Like '%jazda'' (length=54)


Warto zapoznac sie z sposobem pobierania zmienych:
  1. <?php
  2. $getHwao = $Request->getParam( 1, 2, 3, 4, 5 );
  3. ?>


Na przykladzie $_GET['hwao']

1 - wymagana - klucz jakiego szukamy czyli unas 'hwao'
2 - gdzie szukamy - domyslnie GET
GET = WebRequest::GET lub string 'get' lub 'g' wielkosc liter obojetna
Analogicznie z Post WebRequest::POST 'post' 'p' i cookie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
3 - nie wymagany - True/False - czy chcemy zastapic na encje kod html, domyslnie FALSE
4 - nie wymagany - True/False - czy kod bedzie zapisywany w bazie danych (usuwanie znacznikow zagrazajacych naszemu sql (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ) domyslnie FALSE
5 - nie wymagany - String - mozemy chciec jakos ekstra zformatowac zmienna składnia sprintf().

To narazie tyle ide coś zjeść (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Całość jest dostepna jako OS wiec róbta co chceta... ps milo by bylo zostawic informacje o autorze..
Go to the top of the page
+Quote Post

Posty w temacie
- hwao   [PHP5] Framework dla najmłodszych   25.02.2006, 17:48:17
- - vieri_pl   juz jest ok Mialem ustawione php 4 thx hwao za...   25.02.2006, 18:05:46
- - mike_mech   ~vieri_pl to jest kod pod php5 A po błędzie widzę,...   25.02.2006, 18:07:47
- - hwao   Dobra dodam jeszcze dziś WebRequest: [PHP] pobier...   25.02.2006, 18:58:27
- - Bastion   hm, ciekawa sprawa musze to przestudiowac   25.02.2006, 19:07:22
- - Vomit   Mam pytanie: po co sa puste konstruktory? Jest jak...   25.02.2006, 19:31:31
- - ens0re   Może głupie pytanie, ale jestem nie kumaty pewnie:...   25.02.2006, 19:37:30
- - hwao   Cytat(Vomit @ 2006-02-25 19:31:31)Mam pytanie...   25.02.2006, 19:38:10
- - ens0re   Dzieki za info   25.02.2006, 19:55:40
- - Vomit   Hm, jaka jest zasadnicza ronizca miedzy polem priv...   25.02.2006, 23:52:37
- - scanner   Zacznij od: http://pl.php.net/manual/pl/language.o...   26.02.2006, 00:12:08
- - hwao   Cytat(Vomit @ 2006-02-25 23:52:37)Hm, jaka je...   26.02.2006, 10:24:32
- - Vomit   Ok, dzieki. Wyczytałem wszystko czego nie wiedzial...   26.02.2006, 11:42:43
- - sf   Cytat(Vomit @ 2006-02-26 11:42:43)Ok, dzieki....   26.02.2006, 12:24:47
- - hwao   Dokładnie dlatego jak powiedział sf Request w ph...   26.02.2006, 13:07:05
- - Vomit   WebRequest to jest to samo co httpRequest?   26.02.2006, 15:34:01
- - aleksander   na to wygląda=] ale hwacz musial sie wygryzc i naz...   26.02.2006, 15:54:55
- - hwao   Cytat(Vomit @ 2006-02-26 15:34:01)WebRequest ...   26.02.2006, 16:16:32
- - Vomit   hwao: moglbys pokazac jakis przykład z akcja a nie...   26.02.2006, 17:18:18
- - hwao   Cytat(Vomit @ 2006-02-26 17:18:18)hwao: moglb...   26.02.2006, 17:22:30
- - Strzałek   O hwao widzę szpanuje swoim cackiem. Jak będę w d...   1.03.2006, 16:57:52
- - TomASS   Dzięki Hwao, mam zamiar zabrać się za frameworki i...   13.03.2006, 23:46:22
- - dr_bonzo   Moze nie jestem hwao ale znam kilka odpowiedzi C...   14.03.2006, 00:04:05
- - hwao   Postaram sie to bardziej dopracowac, dodac obsluga...   14.03.2006, 08:26:50
- - splatch   [PHP] pobierz, plaintext <?phppublic function ...   14.03.2006, 08:59:48
- - hwao   @splatch w php 5.1 wywala error jak cos ma & a...   14.03.2006, 09:34:14
- - Strzałek   CytatDzięki Hwao, mam zamiar zabrać się za framewo...   14.03.2006, 10:15:23
- - MagnuM   Prosiłbym o informację czy 'projekt' jest ...   31.07.2006, 23:56:40
- - hwao   Tak jest rozwijany, juz powstała 3 wersja   1.08.2006, 11:12:28
- - Turgon   Ja nigdzie nie widzę nowych źródeł.   1.08.2006, 16:16:52
- - hwao   Źródeł narazie nia mam czasu udostępnić, tzn o tyl...   1.08.2006, 17:21:13
- - MagnuM   Ja nalegam... chociażby bez opisywania.   1.08.2006, 17:29:22
- - Turgon   O to wrzucaj hwaosz...   1.08.2006, 19:12:47
|- - tuner   Cytat(Turgon @ 1.08.2006, 18:12:47 ) ...   1.09.2006, 13:10:19
- - hwao   Akurat ftp mi siadl, ale jak tylko powstanie to wr...   1.09.2006, 13:38:05
- - Turgon   Ciekawe. Przejrzałem źródła i zastanawiam się dlac...   1.09.2006, 13:45:58
- - hwao   Stwierdzilem ze sie nie przyda w tamtym projekcie....   1.09.2006, 14:35:25
- - Turgon   Po co ci przy kompilacji szablonu ?   1.09.2006, 15:16:10
- - hwao   Jest tam smarty poniewaz moj autorski system szabl...   1.09.2006, 17:17:39
- - Turgon   Hmmm... Odbiegając troche od tematu, bo sam piszę ...   2.09.2006, 07:57:54
|- - Prph   Cytat(Turgon @ 2.09.2006, 06:57:54 ) ...   7.09.2006, 01:21:58
- - ARJ   @hwao mógłbyś podać jakieś proste wykorzystanie tw...   6.09.2006, 21:37:03
- - Turgon   Słuszna uwaga. Po prostu chyba zrobie własny prost...   7.09.2006, 15:28:53


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 17.10.2025 - 17:01