Tvorba složitých projektů – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Tvorba složitých projektů – PHP – Fórum – Programujte.comTvorba složitých projektů – PHP – Fórum – Programujte.com

 

D-Fox0
Stálý člen
5. 6. 2008   #1
-
0
-

Potřeboval bych poradit ohledně nějaké litaratury(elektonické nb tištěné) která by se zabývala tvorbou, postupem a navrhováním složitějšich PHP projektů (jako např CMS nebo PHPBB forum). Takže by se pravděpodobně měla zabývat spíše praxí než syntaxí. Zkušenosti s PHP na "trochu poročilejší" úrovni mám (+ velice male zaklady OOP). Problém je v tom že můj systém výroby stránek je asi takový, že si udělám pár konfiguračních sobourů, pár souborů s funkcema. A pak jen matlám PHP a HTML kód dohromady pro každou stránku zvlášť. To mi pro většinu stránek, nebo nějakej ten jednoduchej eShop stačilo. Ale pro složitější projekty je to nepoužitelný.

Nějakou dobu jsem se prohrabával ve zdrojákách různých redakčních systému. Ale myslím si že mi to moc nedalo.

Takže bych potřeboval poradit jakým směrem bych se měl ubírat, abych si svoje vědomosti zlepšil a jestli by mi nepomohla nějaká šikovná literatura

Nahlásit jako SPAM
IP: 89.176.62.–
petrl0
Návštěvník
5. 6. 2008   #2
-
0
-

Ahoj, no tvoje znalosti by se v php měli orientovat směrem OOP a ZEND Framework. Základ je napsat si vlastní univerzální třídy.

Uvedu příklad. Já si napsal třídu a dal jsem ji jméno start. V této třídě mám v konstruktoru připojení na databází, a pak obsahuje metody pro vypsaní html hlavičky, seskládání menu stránky z dat v MySQL, patičky stránky, vlastní ošetřrní vyjímek atd...

Teď mě asi PHápkaři ukamenují, ale pokud máš náladu a čas učit se něco nového naučse C#.NET a technologie ASP. Pro ty projekty o kterých tady mluvíš je to úplně ideální a výkoný nástroj. Rychlost vývoje tím snížíš na minimum. Mnoho štěstí. :smile1:

Nahlásit jako SPAM
IP: 82.150.166.–
Na fóru mě naleznete pod novým nickem => plasmo
netman920
Super člen
5. 6. 2008   #3
-
0
-

To petrl :
mohol by si tu pls napisat ako sa vytvori tireda??
diky moc

cital som manual ale vela mi to nedalo

Nahlásit jako SPAM
IP: 195.91.54.–
codaa
~ Anonymní uživatel
9 příspěvků
5. 6. 2008   #4
-
0
-



<?php
class SimpleClass
{
// member declaration
public $var = 'a default value';

// method declaration
public function displayVar() {
echo $this->var;
}
}
?>



Jinak php.net/class

Nahlásit jako SPAM
IP: 85.70.183.–
netman920
Super člen
5. 6. 2008   #5
-
0
-

To codaa :
no a ako to pouzijem mimo classu?

Nahlásit jako SPAM
IP: 195.91.54.–
Quiark0
Věrný člen
5. 6. 2008   #6
-
0
-

To D-Fox : No, nezdá se to, ale tohle je docela složitá otázka. Podobný problém (jak udělat velký software, aby se v tom člověk vyznal a dalo se to relativně snadno měnit) se vyskytuje i mimo webové aplikace. Návrhem softwaru se zabývá dost lidí, existují na toto téma mnohé publikace.

Asi je potřeba mít dostatek zkušeností s vývojem softwaru. Řekl bych, že teorie se z knížek jen tak vyčíst nedá, člověk si to musí "osahat".

Rozhodně je potřeba se nejdřív dobře naučit OOP, které je v dnešní době nejrozšířenější. Potom se můžeš mrknout na existující PHP frameworky jako je CodeIgniter, Zend framework atd.

Nahlásit jako SPAM
IP: 194.212.43.–
petrl0
Návštěvník
5. 6. 2008   #7
-
0
-
Nahlásit jako SPAM
IP: 82.150.166.–
Na fóru mě naleznete pod novým nickem => plasmo
bukaj0
Věrný člen
5. 6. 2008   #8
-
0
-

petrl
V této třídě mám v konstruktoru připojení na databází, a pak obsahuje metody pro vypsaní html hlavičky, seskládání menu stránky z dat v MySQL, patičky stránky, vlastní ošetřrní vyjímek atd...
Tím by ses neměl moc chlubit. Tohle je právě jeden z těch příkladů, jak by se aplikace navrhovat neměla.

D-Fox
Jak píše Quiark: "...člověk si to musí 'osahat'." Nejlíp je prostě se dívat různě po webu, hledat různé články a z každého si nějakou tu "vychytávku" odnést a aplikovat ji. Důležité je, než vůbec začneš psát, si rozmyslet, co budeš dělat a také si říct, jestli by to šlo jinak a líp. V PHP je problém (i výhoda), že aplikace můžeš začít psát bez jakéhokoli návrhu -- prostě to "splácáš" do hromady -- ale jestli to myslíš vážně, je potřeba nejdřív přemýšlet a potom teprve psát.

Nahlásit jako SPAM
IP: 212.116.219.–
Jak se správně ptát? -> http://www.hash.cz/inferno/otazky.html[br][br] Po programování je člověk hladovej.
petrl0
Návštěvník
5. 6. 2008   #9
-
0
-

To bukaj : a že to je špatné, proč? :smile1: Snad já sem programátor a já si navrhuju aplikace. A jestli ty to děláš jinak... to není můj problém. Ale tímhle způsobem mám univerzální třídy které můžu aplikovat na jákikoli produkt. Ale PHP se opravdu na velký projekty nehodí. Let's go to ASP.NET 2.0 :smile4:

Nahlásit jako SPAM
IP: 82.150.166.–
Na fóru mě naleznete pod novým nickem => plasmo
Tomcat0
Newbie
5. 6. 2008   #10
-
0
-

Zajimavy dotaz. Lec nesnadna odpoved. Byl jsem v podobne situaci s tim rozdilem, ze jsem na tom byl s objekty o neco lepe nez ty, psal sem tenkrat i desktopove aplikace v Delphi. Myslim, ze z literatury primo tohle moc pochytit nelze, kdyz uz nejaka kniha neresi syntaxi od A do Z, tak je to vetsinou na hodne obecne urovni a to jsem alespon ja nebyl v te situaci, v jake jsi ty tak nejak schopen prijmout.
Ja jsem tenkrat zacal psat vlastni modularni OOP framework, ktery byl tak nejak intuitivnim pokusem o MVC architekturu. Takze pokud bych ti mel poradit v tom duchu, poradil bych ti nastuduj si MVC, stejne se dneska rozume psane webove aplikace jinak nedelaji a najdi si nejaky hotovy framework, ktery ti bude vyhovovat (Zend, CakePHP, Symphony namatkou). Ze zacatku to bude bolet, ale casem budes daleko efektivnejsi a tva prace bude mit hlavu a patu.
Uprimne, to co ti radim mi tenkrat kdosi taky radil, ne ja si to musel napsat sam, sam si zjistit, ze vymyslim po milionte kolo. A myslim, ze takhle si to proste chce zkusit kazdy, protoze dokud sam na ty duvody, co jak delat neprijde, neni ochoten prijmout tu komplexnost, jakou ty soucasne frameworky poskytuji (mluvim ciste ze sve zkusenosti, nekdo muze mit jiny nazor).

Nahlásit jako SPAM
IP: 62.24.93.–
"Nemůžete nikoho nic naučit, můžete mu maximálně pomoci, aby to sám v sobě nalezl. " Galileo Galilei
Tomcat0
Newbie
5. 6. 2008   #11
-
0
-

petrl napsal:#
Uvedu příklad. Já si napsal třídu a dal jsem ji jméno start. V této třídě mám v konstruktoru připojení na databází, a pak obsahuje metody pro vypsaní html hlavičky, seskládání menu stránky z dat v MySQL, patičky stránky, vlastní ošetřrní vyjímek atd...


Tohle je svym zpusobem krok prave k tomu frameworku. Urcite to dobre funguje, ale neni to rozhodne "good practice", uz jen tim, ze to ma s objektovym navrhem pramalo spolecneho (uz jen to, ze ta trida dela x ruznych nesouvisejicich veci je spatne, nazev je take zcestny atd.)

Nahlásit jako SPAM
IP: 62.24.93.–
"Nemůžete nikoho nic naučit, můžete mu maximálně pomoci, aby to sám v sobě nalezl. " Galileo Galilei
D-Fox0
Stálý člen
6. 6. 2008   #12
-
0
-

Přečet jsem si pár Inf o MVC ale nepochopil, jak moc má bejt framework napsaný podle MVC abstraktní. Např. jak se má chovat vrstva která komunikuje s databází. Dle mého úsudku by to mělo bejt asi tak, že disponuje pro programátora základníma funkcema jako načtení konfiguračních dat, vytvoření a ukončení spojení s db(nehledě na typ DB), a pak nějaký podpůrný funkce pro dotazy nad db, rozparsování výsledků do nějakých struktur(např do tabulky nebo do xml) atd.

A celá tahle databázová vrsta by měla bejt nejspíše rozšiřitelná pro programátra v tom smyslu ze si pomocí téhle části frameworku naprogramuje už vlastní třídy(funkce) pro řešení konkrétních problémů.

Jenže takhle mi připadá že takovýhle framework podporuje opravdu jen základní věci a nic zas tak světobornýho neumí, spíš mi to připadá jako jen nějaká základní kostra kterou si může každý udělat sám.

Nejsíš by asi bylo nejlepší kdybych si opravdu nějaký konkrétní volně šiřitelný framework vyzkoušel.

Jinak tady jsem narazil na docela zajímavej článek s primitivním frameworkem

http://www.zapisky.info/?item=jednoduchy-mvc-framework-napsany-v-php

Nahlásit jako SPAM
IP: 89.176.62.–
D-Fox0
Stálý člen
6. 6. 2008   #13
-
0
-

Možná sem si představoval pod tím frameworkem úplně něco jiného než jsem měl.
Když sem ještě nad tím popřemýšlel tak se mi teď zdá že php v základu umí prdalz a je velmi primitivní, dnes nemoderní jazyk, má jen opravdu nějaký základní funkce a nedá se považovat za klasícký programovací jazyk. A to vlastně řeší framework. Který php povyšuje na "vyšší jazyk" Takže vlaste framework do php přidává to co je např v javě "Java Core API".

Chápu to dobře? :smile1:

Nahlásit jako SPAM
IP: 89.176.62.–
Quiark0
Věrný člen
6. 6. 2008   #14
-
0
-

Řekl bych že jo.

Jinak PHP je poměrně primitivní jazyk a má některé ošklivé vlastnosti. Původně to byl spíš takový bastl, narozdíl od Javy, C# a dalších "skutečných" jazyků, které byly už od začátku promyšlené.

Nahlásit jako SPAM
IP: 194.212.43.–
Tomcat0
Newbie
6. 6. 2008   #15
-
0
-

D-Fox napsal:
Přečet jsem si pár Inf o MVC ale nepochopil, jak moc má bejt framework napsaný podle MVC abstraktní. Např. jak se má chovat vrstva která komunikuje s databází. Dle mého úsudku by to mělo bejt asi tak, že disponuje pro programátora základníma funkcema jako načtení konfiguračních dat, vytvoření a ukončení spojení s db(nehledě na typ DB), a pak nějaký podpůrný funkce pro dotazy nad db, rozparsování výsledků do nějakých struktur(např do tabulky nebo do xml) atd.

A celá tahle databázová vrsta by měla bejt nejspíše rozšiřitelná pro programátra v tom smyslu ze si pomocí téhle části frameworku naprogramuje už vlastní třídy(funkce) pro řešení konkrétních problémů.

Jenže takhle mi připadá že takovýhle framework podporuje opravdu jen základní věci a nic zas tak světobornýho neumí, spíš mi to připadá jako jen nějaká základní kostra kterou si může každý udělat sám.

Nejsíš by asi bylo nejlepší kdybych si opravdu nějaký konkrétní volně šiřitelný framework vyzkoušel.

Jinak tady jsem narazil na docela zajímavej článek s primitivním frameworkem

http://www.zapisky.info/?item=jednoduchy-mvc-framework-napsany-v-php


No to jak ma byt ten framework abstraktni, ani jak konkretne kde ma co byt, to uz nikde neni receny. MVC je ciste jen architektonicky navrhovy vzor, nic vic, nic min (rika, jak to ma navenek vypadat, ne jak to udelat). Jinak ten framework chapes vicemene si myslim spravne, z toho co jsi napsal. S jednim podstatnym "ale". Tim je to, ze na zaklade aplikacniho rozhrani, ktere ti framework poskytuje muzes vytvorit znovupouzitelne moduly - mene prace. A co je lepsi, takove moduly muzes ziskat od tretich stran. Kdyz si to napises sam, tak ta spoluprace tretich stran je problematictejsi ;)

Nahlásit jako SPAM
IP: 62.24.93.–
"Nemůžete nikoho nic naučit, můžete mu maximálně pomoci, aby to sám v sobě nalezl. " Galileo Galilei
Tomcat0
Newbie
6. 6. 2008   #16
-
0
-

D-Fox napsal:
Možná sem si představoval pod tím frameworkem úplně něco jiného než jsem měl.
Když sem ještě nad tím popřemýšlel tak se mi teď zdá že php v základu umí prdalz a je velmi primitivní, dnes nemoderní jazyk, má jen opravdu nějaký základní funkce a nedá se považovat za klasícký programovací jazyk. A to vlastně řeší framework. Který php povyšuje na "vyšší jazyk" Takže vlaste framework do php přidává to co je např v javě "Java Core API".

Chápu to dobře? :smile1:


Podle tohodle pohledu umi kazdy jazyk v zakladu prdlajz a za to by te vetsina jeho vyvojaru asi umlatila :). S cim souhlasim je, ze PHP je nemoderni jazyk a ze pestuje velmi spatne programatorske navyky. O tom jestli je skritovaci jazyk programovaci jazyk sem cetl radu flamu, pro me to programovaci jazyk je. Framework zadny jazyk na vyssi nepovysuje. Konkretne PHP ti v zakladu dava pomerne siroke moznosti jak dosahnout cile. Framework si vetsinou vybira jednu z tech cest, ktera je povazovana za spravnou a v maximalni mozne mire se ti snazi v tom smeru usnadnit praci (casto za tebe umi i generovat znacnou cast kodu). Co se jinych jazyku tyce, tak Java to ma uplne stejne (tam to navic dostava grady tim, ze v ni lze psat prakticky jakykoli typ aplikace od desktopu pres web k aplikaci pro mobil), jinak by takovy Spring ci Struts asi nebyly tak popularni.

Nahlásit jako SPAM
IP: 62.24.93.–
"Nemůžete nikoho nic naučit, můžete mu maximálně pomoci, aby to sám v sobě nalezl. " Galileo Galilei
bukaj0
Věrný člen
6. 6. 2008   #17
-
0
-

petrl
Snad já sem programátor a já si navrhuju aplikace.
Oh, velectěný, skláním se před tebou a tvou moudrostí.

jestli ty to děláš jinak... to není můj problém.
Já jenom nechci, aby se od tebe tyhle věci učili ostatní. Protože jim to může život hodně ztížit. Ale každý programátor si projde několika stádii. I já jsem toto, ve kterém se teď nacházíš ty (= umím a vím všechno líp než ostatní), zažil.

a že to je špatné, proč?
Jak napsal Tomcat: "uz jen to, ze ta trida dela x ruznych nesouvisejicich veci je spatne, nazev je take zcestny atd." Třída by měla utvářet celek, který plní určitou úlohu, jednu úlohu. Pokud ve třídě kombinuješ, jak jsi sám napsal, metody sloužící k připojení k databázi s těmi k ovládání výstupu, no, potěž pánbůh -- bůhví, jak to máš, ale obojí by mělo být oddělené. Věřím, že teď ti přijde, že jsi borec, když jsi dokázal nastrkat funkce do třídy, ale to poznáš až opravdu nejaký ten větší projekt, který bude muset být spravován déle než měsíc, budeš dělat.

Nahlásit jako SPAM
IP: 212.116.219.–
Jak se správně ptát? -> http://www.hash.cz/inferno/otazky.html[br][br] Po programování je člověk hladovej.
petrl0
Návštěvník
6. 6. 2008   #18
-
0
-

To Quiark : Je konečně další člověk který píše že PHP je primitivní jazyk. Zcela s tebou souhalsím.

Nahlásit jako SPAM
IP: 82.150.166.–
Na fóru mě naleznete pod novým nickem => plasmo
Tomcat0
Newbie
6. 6. 2008   #19
-
0
-

petrl napsal:
To Quiark : Je konečně další člověk který píše že PHP je primitivní jazyk. Zcela s tebou souhalsím.


Priznam se, ze by me zajimal argument, kterym sve tvrzeni podporis...

Nahlásit jako SPAM
IP: 62.24.93.–
"Nemůžete nikoho nic naučit, můžete mu maximálně pomoci, aby to sám v sobě nalezl. " Galileo Galilei
7. 6. 2008   #20
-
0
-

PHP ma hlavne mizernou podporu OOP

Nahlásit jako SPAM
IP: 81.30.238.–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
Tomcat0
Newbie
7. 6. 2008   #21
-
0
-

S tim se mi nejak nechce souhlasit. Chybi tam nektere ficury, me konkretne treba genericy. Meri se timhle primitivnost jazyka? Ja vlastne sam ani nevim. Pro me je primitivni jazyk ten, ktery obsahuje malo konstruktu, u ktereho myslenka co chci zapsat vyzaduje hodne prace a hodne kodu. Asi na to mate jiny pohled, beru to.

Nahlásit jako SPAM
IP: 62.24.93.–
"Nemůžete nikoho nic naučit, můžete mu maximálně pomoci, aby to sám v sobě nalezl. " Galileo Galilei
bukaj0
Věrný člen
7. 6. 2008   #22
-
0
-

Na úvod: Rozhodně to neberte tak, že se zastávám PHP a říkám, že je to nějaký extra jazyk, ale když ho tu takhle odsuzujete, zajímá mě prostě proč. A zajímalo by mě to i u jakéhokoli jiného jazyka.

CommanderZ
PHP ma hlavne mizernou podporu OOP
Co přesně myslíš tou mizernou podporou OOP?

Tomcat
me konkretne treba genericy
K čemu by v PHP byly, když má dynamické typování?

petrl
PHP je primitivní jazyk
Stejně jako Tomcata by mě zajímalo, co tě k tomu vede? Čím tohle tvrzení podepřeš? A hlavně podle čeho tu "primitivnost" soudíš?

Nahlásit jako SPAM
IP: 212.116.219.–
Jak se správně ptát? -> http://www.hash.cz/inferno/otazky.html[br][br] Po programování je člověk hladovej.
Tomcat0
Newbie
7. 6. 2008   #23
-
0
-

"K čemu by v PHP byly, když má dynamické typování? " - To je slozitejsi. Ja bych se prave primlouval i za ty datovy typy. I ted se da specifikovat, jake tridy ma byt vstupni parametr funkce. Ja vim....delam z toho jinej jazyk O:-)

Nahlásit jako SPAM
IP: 62.24.93.–
"Nemůžete nikoho nic naučit, můžete mu maximálně pomoci, aby to sám v sobě nalezl. " Galileo Galilei
7. 6. 2008   #24
-
0
-

1) Nepodporuje pretezovani (ja vim, to neni moc OOP) - to souvisi s temi datovymi typy - me osobne tam taky chybeji. Je docela opruz porad checkovat, jestli nekdo nerve stringy tam kde maji byt integery atd. Navic je tu klasicky priklad (string)"false" == (int)0 is true. Vim, tohle se da resit pomoci ===, ale to by znamenalo je mit skoro vsude...
2) Staticke a nestaticke metody jsou rozlisene jen velmi pofiderne. Myslim, ze to, ze se v metodach musi rozhodovat pomoci podminky isset($this), jestli je trida inicializovana, je docela prasarna.
3) Nepritomnost struktur !!! Pokud chce clovek pouzit neco, co by bylo schopne nest nejakou soustavu dat, tak musi pouzit bud pole nebo tridu. Ale ani jedno nejde inicializovat zpusobem struktura a={vlastnost1,2,3..}. Pole s ciselnymi indexy nepoxitam, ty jsou na tohle k nicemu.
4) Nerozsiritelnost trid - nevim jak v ostatnich jazycich (obzvlast v tech OO), ale v JS lze ke tride proste pripojit dalsi kod, coz se v praxi velice hodi pro vytvareni modulu. V php jedine co je je nejake zakldadni dedeni, to je ale v tomto pripade k nicemu, obzvlaste v pripade, ze mate tech modulu vice.
5) globalni promenne nejsou pristupne ve funkcich(a tridach) jinak nez pomoci global... nebo superglobalniho pole $GLOBALS

Nahlásit jako SPAM
IP: 81.30.238.–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
bukaj0
Věrný člen
7. 6. 2008   #25
-
0
-

Tomcat
Ja bych se prave primlouval i za ty datovy typy.
Ja vim....delam z toho jinej jazyk O:-)

Sám sis odpověděl :)

CommanderZ
to souvisi s temi datovymi typy - me osobne tam taky chybeji
K tomu bych řekl to samé, co píše Tomcat. Dynamické typování je jednou ze základních vlastností PHP. Jako všechno má své výhody i nevýhody.

Staticke a nestaticke metody jsou rozlisene jen velmi pofiderne.
Za tu dobu, co v PHP píšu, jsem v tom neviděl žádný problém. A isset($this) jsem v životě nepoužil. Možná by to chtělo nějaký příklad, protože si opravdu nedokážu představit případ, kdy by tohle bylo zapotřebí.

Nepritomnost struktur !!!
Pokud vím, tak Java taky nemá struktury a hodně lidí si ji vychvaluje. Prostě se jen místo struct point { int x; int y; } píše class Point { public int x; public int y; }. Stejně tak je to v PHP (akorát bez definice typů). A zkrácený způsob zápisu -- syntactic sugar. Je pravda, že v PHP by se trochu toho "cukru" přecijen hodilo.

Nerozsiritelnost trid - nevim jak v ostatnich jazycich (obzvlast v tech OO), ale v JS lze ke tride proste pripojit dalsi kod, coz se v praxi velice hodi pro vytvareni modulu.
Javascript je v tomhle naopak natolik "hodný", až bych se toho docela bál. Navíc v Javascriptu jde o úplně jiný styl objektového programování -- beztřídní, neboli prototypované -- zatímco většina dnes běžně používaných jazyků používá OOP založené na třídách. Taky Javascript má výhodu v tom, že funkce jsou hodnoty první třídy (tzv. first-class citizens) -- tzn. že je jde předávat jako parametry fcí, ukládat do proměnných atd. Tady je to složitější. PHP "kompiluje" funkce

globalni promenne nejsou pristupne ve funkcich(a tridach) jinak nez pomoci global... nebo superglobalniho pole $GLOBALS
Tak tohle bych považoval spíše jako plus než minus. Globalní proměnné jsou zlo :) Čím více se přístup k nim stíží, tím lépe.

Ale tohle je už dost OT, radši s tím brzdit.

Nahlásit jako SPAM
IP: 212.116.219.–
Jak se správně ptát? -> http://www.hash.cz/inferno/otazky.html[br][br] Po programování je člověk hladovej.
7. 6. 2008   #26
-
0
-

K tomu bych řekl to samé, co píše Tomcat. Dynamické typování je jednou ze základních vlastností PHP. Jako všechno má své výhody i nevýhody.

Ale PHP to prehani - podivej se na to co jsem napsal tucne - vzdyt ono nerespektuje ani vylozene nasilne vynucene typy!
Pokud vím, tak Java taky nemá struktury a hodně lidí si ji vychvaluje. Prostě se jen místo struct point { int x; int y; } píše class Point { public int x; public int y; }. Stejně tak je to v PHP (akorát bez definice typů). A zkrácený způsob zápisu -- syntactic sugar. Je pravda, že v PHP by se trochu toho "cukru" přecijen hodilo.

To je zbytecny overkill (ale bohuzel nutny). Navic to znamena vytvorit si jeste konstruktor, ktery bude ty hodnoty prirazovat. je to zbytecna prace a zbytecny objem.
Tak tohle bych považoval spíše jako plus než minus. Globalní proměnné jsou zlo :) Čím více se přístup k nim stíží, tím lépe.

Uznavam ze jak to ma treba JS je uplne silene - tedy ze je vsechno globalni. Nicmene mi vyhovuje jak to ma treba c++ - tam se globalky chovaji opravdu globalne a jsou pristupne vsude. Samozrejme, ze to znamena si rozmyslet, co bude globalka a co ne...premysleni a navrhovani snad ale k programovani patri, ne?

Nahlásit jako SPAM
IP: 81.30.238.–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
bukaj0
Věrný člen
7. 6. 2008   #27
-
0
-

CommanderZ
podivej se na to co jsem napsal tucne - vzdyt ono nerespektuje ani vylozene nasilne vynucene typy!
K tomuhle jde říct jediné: Když porovnáváš, musíš porovnávat porovnávatelné. PHP prostě při porovnávíní převádí na jeden typ (v případě řetězce a číšla převede řetězec na číslo), pro porovnávání bez převádění je zde ===. Sice píšeš, že by se to pak muselo psát všude, ale to není pravda. Případů, kdy by se === dalo použít, je minimum. I v takovém Céčku máš nějakou implicitní konverzi při porovnávání. Nechci tím však říct, že to, jak to převádí PHP, je správně.

To je zbytecny overkill (ale bohuzel nutny). Navic to znamena vytvorit si jeste konstruktor, ktery bude ty hodnoty prirazovat. je to zbytecna prace a zbytecny objem.
Podle mě je to jen další způsob řešení. Dokonce to je i návrhový vzor zvaný Crate (Bedna). Je to holt tak, že v Javě či PHP se třídy používají jako struktury, v C++ struktury jako třídy :)

Samozrejme, ze to znamena si rozmyslet, co bude globalka a co ne...premysleni a navrhovani snad ale k programovani patri, ne?
Ano, je to o přemýšlení. Pokud si dobře pamatuji, globální proměnné jsem nikdy nepoužíval a nikdy mi nechyběly.

Nahlásit jako SPAM
IP: 212.116.219.–
Jak se správně ptát? -> http://www.hash.cz/inferno/otazky.html[br][br] Po programování je člověk hladovej.
DragonBehemont0
Super člen
12. 6. 2008   #28
-
0
-

To All:
Zdravím pánové. KAždého z Vás znám z několika debat a mohu říct, že rozhodně o PHP nevím všechno, co určitě víte vy... takže možná Vám bude přínosem pohled sice pokročilejšího, ale né tak pokročilého. Jsem zastáncem PHP, ale netvrdím, že je to nejlepší jazyk na světe.

1) Nevím, proč každý porovnává C#, C++, C, Javu oproti PHP. Jak můře někdo porovnávat programovací jazyk vytvořený pro OOP se skriptovacím jazykem?

2) S PHP jsem spokojený díky jednoduchosti a flexibilitě. Zkouším teďka přejít na C++, ale mohu říct, že je to těžký boj díky zvyklostem z PHP, kdy je PHP zcela jiného formátu a nemusím tam složitě zadávat plno dalších věcí, ale mohu pracovat jednoduše.

3) Nesouhlasím s tím, že je PHP zcela zastaralé. Je fakt, že například neumí komunikovat s perifériemi (COM port, USB, atd.), ale zato jsem tam našel plno užitečných funkcí - GD knihovna, práce se Zip, pdf, atd.

4) Uživateli petrl bych radil, ať se krotí, protože v každém fóru, kam přijde, tak vyvolává nekonečný flame PHP vs. celý svět, i když nechápu proč. :smile19: Myslím, že už každý, kdo se s ním setkal pochopil, že on je tvrdým zastánce ASP.NET, tak to nemusí pořád dávat najevo, ale spíše předložit pádné argumenty, jako například Tomcat, CommanderZ a bukaj.

5) Chápu, že pro tak zkušené programátory je PHP podřadný, ale já mohu říct, že jsem se ho naučil využívat na maximální možné hladině. Čato v něm řeším věci, které by bylo možná lepší řešit v C++, ale i přesto se obrátím na PHP, opět díky jednoduchosti. Ale zatím jsem nenašel nic, co bych v něm nedokázal vyřešit.

6) Například uvedu jednoduchou věc. Komunikace s databází. Prolezl jsem snad celý Internet (tohle je ironická poznámka), ale nikde jsem nenašel jednoduchý a jasný návod, jak se připojit k databázi a zaslat tam SQL dotaz. V PHP jsem to našel za 5minut, z čehož 2minuty se mi načítaly stránky :smile1: Možná Vám to přijde jako blbost, ale ať už je PHP jakékoliv, tak má nejrozsáhlejší podporu u uživatelů, má snadno dostupný návod a přehledný, je lehké v něm začít psát a snadné se v něm orientovat.

- podotýkám, že nejsem tak zkušený jako vy, ale takhle to cítím já... možná, že až dosáhnu stejné úrovně znalostí v C++, tak budu mluvit jinak, ale zatím jsem s PHP spokojený...

Nahlásit jako SPAM
IP: 194.138.39.–
Nemusíte vědět vše, stačí jen, když víte, kde to najít, a jak to použít. Naučíte se to právě tím používáním ;-)
Osiris0
Stálý člen
12. 6. 2008   #29
-
0
-

To DragonBehemont :

PHP + MySQL je použitelné jen na malé projekty. Na větší projekty nestačí, navíc MySQL je snad nejhorší databáze.

Nahlásit jako SPAM
IP: 85.70.130.–
DragonBehemont0
Super člen
12. 6. 2008   #30
-
0
-

To Osiris : Nevím, já v ní dělám i velké projekty a bez problémů... Stačí a dokonce i pomáhá. A nevím, ale že bych používal jinčí databázi? V podstatě mám na výběr ze dvou databází... MySQL a PostgreSQL databázi... jaký je v nich rozdíl? Nevím, ani nemám potřebu to zkoumat... dokud mi stačí MySQL a vyhovuje mi, tak proč si komplikovat život?

Nahlásit jako SPAM
IP: 194.138.39.–
Nemusíte vědět vše, stačí jen, když víte, kde to najít, a jak to použít. Naučíte se to právě tím používáním ;-)
DragonBehemont0
Super člen
12. 6. 2008   #31
-
0
-

To Osiris : Neber to tak, že bych tím úplně zavrhoval, už teďka se dívám na ofiko stránky PostgreSQL a zkoumám syntaxe... ale nevidím v tom rozdíl. Proč je MySQL nedostačující? Nebo v čem jsou ty druhé lepší?

Nahlásit jako SPAM
IP: 194.138.39.–
Nemusíte vědět vše, stačí jen, když víte, kde to najít, a jak to použít. Naučíte se to právě tím používáním ;-)
Osiris0
Stálý člen
12. 6. 2008   #32
-
0
-

To DragonBehemont :

Velký projekt beru projekt od cca 300 tisíc řádek zdrojového kódu. Jsem zvědav, jak to budeš v PHP spravovat :-)

No tak MySQL samozřejmě na PL/SQL (Oracle) či MS SQL (a další Firebird ...) prostě nemá. Nemá funkčnost, nemá dostatečný výkon, ani bezpečnost.

Nahlásit jako SPAM
IP: 85.70.130.–
DragonBehemont0
Super člen
12. 6. 2008   #33
-
0
-

To Osiris : No... upřímně řečeno... teďka se na jeden takový velký projekt chystám a chtěl jsem to spravovat přes PHP a v MySQL :smile20:

Jo, Oracle je dobrá databáze, ale celkem dost drahá, teda aspoň dle cen dva roky zpátky :smile10:

- funkčnost? Mohl by si uvést třeba příklad? Protože, jak jsem už psal, mám databázi pouze v MySQL.
- bezpečnost? Nezavísí to třeba i na použití SSL? - jen se ptám, protože si nejsem jist.

Jinak mám k dispozici použít 2 databáze:
a) MySQL
b) PostgreSQL

nebo c) Jiný hosting

Nahlásit jako SPAM
IP: 194.138.39.–
Nemusíte vědět vše, stačí jen, když víte, kde to najít, a jak to použít. Naučíte se to právě tím používáním ;-)
DragonBehemont0
Super člen
12. 6. 2008   #34
-
0
-

To Osiris : Teďka se dívám na ten Firebird. Dokonce je zde možnost komunikace přímo přes PHP. To je pro mě výhodou :-) Ale mám další otázku, která se týká Firebirdu... a co podpora na webhostingu? Neznáš nějaký českžý hosting s touto databází?

Nahlásit jako SPAM
IP: 194.138.39.–
Nemusíte vědět vše, stačí jen, když víte, kde to najít, a jak to použít. Naučíte se to právě tím používáním ;-)
Osiris0
Stálý člen
12. 6. 2008   #35
-
0
-

To DragonBehemont :

funkčnost: nepodporuje dobře transakce a tunu dalších věcí, co jsou například v Oracle či MS SQL, Foreign klíče atd.
bezpečnost: ne , SSL ne. INSERT DELAYED a INSERT LOW PRIORITY ,INSERT IGNORE, aneb kašleme na testování návratových hodnot.
Moc se neřeší itegrita dat.


Použij takovou databázi, která je pro tebe nejlepší.

Nahlásit jako SPAM
IP: 85.70.130.–
Osiris0
Stálý člen
12. 6. 2008   #36
-
0
-

To DragonBehemont :

Neznám, nicméně Firebird mi přijde dobrá a kvalitní databáze. Používám ji často a rád.

Nahlásit jako SPAM
IP: 85.70.130.–
DragonBehemont0
Super člen
12. 6. 2008   #37
-
0
-

No, našel jsem jednu možnost... jelikož se bude jednat o pěrně velký a složitý projekt, tak stejně budu muset nejspíše brát dedikovaný server... a tam je možnost individuálních úprav... tak bych se teoreticky mohl domluvit se správcem. Jinak ohledně návratových hodnot. Není to náhodou i z části na straně programátora? Nevím, jak druzí, ale já třeba nespolíhám plně na databázi, ale návratové hodnoty si hlídám sám pomocí funkce. Nevím, jestli myslíš konkretně tyto návratové hodnoty.

S tímto velkým projektem je spjato i to, že budu muset dbát maximálně na bezpečnost projektu, takže veškeré tyto podněty jsou cenné, i když v této chvíli nezmění nic na tom, že používám MySQL, ale do budoucna...

Nahlásit jako SPAM
IP: 194.138.39.–
Nemusíte vědět vše, stačí jen, když víte, kde to najít, a jak to použít. Naučíte se to právě tím používáním ;-)
Osiris0
Stálý člen
12. 6. 2008   #38
-
0
-

To DragonBehemont :

No právě MySQL ti umožní dělat prasárny. Můžeš použít insert tak, že když vyvolá vyjímku, tak se o tom klient vůbec nedoví. U ostatních databází je to těžší.

Nahlásit jako SPAM
IP: 85.70.130.–
DragonBehemont0
Super člen
12. 6. 2008   #39
-
0
-

To Osiris : tím chceš prostě jen říct, že ta databáze není blbuvzdorná?

Nahlásit jako SPAM
IP: 194.138.39.–
Nemusíte vědět vše, stačí jen, když víte, kde to najít, a jak to použít. Naučíte se to právě tím používáním ;-)
Osiris0
Stálý člen
12. 6. 2008   #40
-
0
-

To DragonBehemont :

Žádná DB není blbuvzdorná, vždycky se dá prasit, ale v MySQL to jde strašně snadno (když pominu další nevýhody MySQL)

Nahlásit jako SPAM
IP: 85.70.130.–
12. 6. 2008   #41
-
0
-

funkčnost: nepodporuje dobře transakce a tunu dalších věcí, co jsou například v Oracle či MS SQL, Foreign klíče atd.


InnoDB MySQL storage engine foreign klice podporuje - ja na nich postavil svuj posledni velky projekt (mel jsem moc malo casu na moc velky projekt, tak jsem si velice jednoduse usetril kontrolovani integrity databaze - proste jsem to navrhl tak, aby se to hlidalo samo). Problem je v tom, ze zaroven nepodporuje fulltextove indexy a vyhledavani, coz je mozna skoro i dulezitejsi.

Nahlásit jako SPAM
IP: 81.30.238.–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
Osiris0
Stálý člen
12. 6. 2008   #42
-
0
-

To CommanderZ : aha, no vidíš, ale zase nepodporuje jiné věci

Nahlásit jako SPAM
IP: 85.70.130.–
DragonBehemont0
Super člen
12. 6. 2008   #43
-
0
-

To CommanderZ : Fultextové vyhledávání nepodporuje? Aha, tak proto mi to nešlo nastavit :smile1: No, já dělám vyhledávání tak, že procházím tabulky a jako hledanou hodnotu udávám WHERE neco LIKE %hledane% ... jde to třeba i nějak jednodušeji, než zadávat pro každý sloupec? Jak teda funguje ten fulltext?

Nahlásit jako SPAM
IP: 194.138.39.–
Nemusíte vědět vše, stačí jen, když víte, kde to najít, a jak to použít. Naučíte se to právě tím používáním ;-)
12. 6. 2008   #44
-
0
-

na fulltextove vyhledavani v MySQL musis pouzivat tabulkovy system MyISAM. Pak take musis mit vytvorene fulltextove indexy na danych sloupicky.. Pak uz akorat pises misto normalni like podminky vyraz typu MATCH(sloupce) AGAINST(vyraz) nebo tak neco.

Nahlásit jako SPAM
IP: 81.30.238.–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
12. 6. 2008   #45
-
0
-

sry, delete

Nahlásit jako SPAM
IP: 81.30.238.–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
DragonBehemont0
Super člen
12. 6. 2008   #46
-
0
-

To CommanderZ : a je nějaký rozdíl mezi tím fulltextovým vyhledáváním a tím, když použiju klasicky like? Myslím tím teďka rychlostně...

Nahlásit jako SPAM
IP: 194.138.39.–
Nemusíte vědět vše, stačí jen, když víte, kde to najít, a jak to použít. Naučíte se to právě tím používáním ;-)
12. 6. 2008   #47
-
0
-

Myslim ze ucite. Fulltext je optimalizovany na dlouhe texty. Navic podporuje takove ty - + a tak.

Nahlásit jako SPAM
IP: 81.30.238.–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
DragonBehemont0
Super člen
13. 6. 2008   #48
-
0
-

Tak právě stahuju ten firebird a vyzkouším ho na localu... i když osobně si myslím, že v tom rozdíl hned nepoznám... nebo nemohli byste mi poradit, jak nejlépe komplexně otestovat databázi?

Neexistuje nějaká funkce / nějaký příkaz, který by běžel na všech databázích bez ohledu na obsah databáze tak, aby bylo možno zjistit chování databáze?

Nahlásit jako SPAM
IP: 194.138.39.–
Nemusíte vědět vše, stačí jen, když víte, kde to najít, a jak to použít. Naučíte se to právě tím používáním ;-)
13. 6. 2008   #49
-
0
-

Precist si dokumentaci.

Jinak moc nechapu, jak si predstavujes, ze by to asi melo vypadat. Pokud uz mas stavajici MySQL aplikaci a chces ji zmenit na jiny system, tak doporucuju PgSQL. To se pri trose stesti (a predvidavosti pripsani aplikace) da portovat velice rychle. Ja to jednou delal, ale nevedel jsem jak na to a stravil s tim asi tyden. Ted uz se ale snazim vsechno delat tak, aby to uz priste nebyl takovy porod.

Jinak nevite jestli se da PgSQL pridat do WampServeru jako dalsi databaze?

Nahlásit jako SPAM
IP: 81.30.238.–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
DragonBehemont0
Super člen
13. 6. 2008   #50
-
0
-

To CommanderZ : Jak by to mělo vypadat? já nevím... nějaká statistická funkce... já vím, blbý nápad :smile12:

No, já se obecně snažím, aby to udělalo to, co potřebuju... takže připojení k databázi mám v jednom souboru, který vždycky jen naincluduju... akorát nevím, jak bych potom přepisoval všechny možné funkce uvnitř skriptu... to by bylo asi na dlouho.

Nahlásit jako SPAM
IP: 194.138.39.–
Nemusíte vědět vše, stačí jen, když víte, kde to najít, a jak to použít. Naučíte se to právě tím používáním ;-)
13. 6. 2008   #51
-
0
-

Myslim ze kazdy by mel pouzivat alepson nejakou jednoduchou MySQL knihovnu, ktera toto umozni menit na jednom miste pro cely projekt. Jestli to nedelas, tak upromnou soustrast (ne kvuli tomuhle, ale celkove). Jinak...znas funkci replace? Vetsina slusnych editoru to umi najednou pro cely projekt. Takze proste nahradis mysql_query pg_query (bacha na to, mam takovy pocit, ze sice vsechny tyhle funkce se v PG jmenuji dost podobne, ale jedna byla uplne jina. Myslim ze to bylo prave query...nejmenuje se to pg_execute nebo tak neco?).

Nahlásit jako SPAM
IP: 81.30.238.–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
DragonBehemont0
Super člen
13. 6. 2008   #52
-
0
-

To CommanderZ : Poslyš, neber to zle, ale nedělej ze mě zas tak velkého blbce :smile3: V databázích se sice nevyznám, ale editor znám docela hodně dobře... a ano, znám funkci replace. Jinak ta funkce se jmenuje pg_query. Já používám pouze klasickou mysql knihovnu... neboli všechno zadávám ručně... Jsem ten typ člověka, co si všechno radši napíše sám... sice zdlouhavě, ale sám.

Nahlásit jako SPAM
IP: 194.138.39.–
Nemusíte vědět vše, stačí jen, když víte, kde to najít, a jak to použít. Naučíte se to právě tím používáním ;-)
13. 6. 2008   #53
-
0
-

Ja si pisu veci kratce a sam :)

Ale rozhodne neuskodi udelat si alespon neco ve stylu

function query($query){

return mysql_query($query);
}

Nahlásit jako SPAM
IP: 81.30.238.–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
DragonBehemont0
Super člen
13. 6. 2008   #54
-
0
-

No, tak to já si je taky snažím psát krátce... ale někdy se to hold zvrtne :-)

Nahlásit jako SPAM
IP: 194.138.39.–
Nemusíte vědět vše, stačí jen, když víte, kde to najít, a jak to použít. Naučíte se to právě tím používáním ;-)
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 9 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý