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
Fórum › PHP
Tvorba složitých projektů
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:
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.
To netman92 : chlape, přečti si tohle: http://php.interval.cz/objektove-orientovane-programovani-oop-v-php/
To co mám ve třídě mimo třídu použiji poze takto(vycházím z kódu v topicu víš):
<?
include "trida.php";
$trida = new SimpleClass();
$trida -> displayVar();
?>
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.
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:
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).
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.)
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
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:
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 frameworkemhttp://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 ;)
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.
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.
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...
PHP ma hlavne mizernou podporu OOP
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.
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íš?
"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:-)
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
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.
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?
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.
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ý...
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?
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ší?
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.
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
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í?
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ší.
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...
To Osiris : tím chceš prostě jen říct, že ta databáze není blbuvzdorná?
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.
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?
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.
sry, delete
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ě...
Myslim ze ucite. Fulltext je optimalizovany na dlouhe texty. Navic podporuje takove ty - + a tak.
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?
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?
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.
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?).
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.
Ja si pisu veci kratce a sam :)
Ale rozhodne neuskodi udelat si alespon neco ve stylu
function query($query){
return mysql_query($query);
}
No, tak to já si je taky snažím psát krátce... ale někdy se to hold zvrtne :-)
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Tvorba spravy projektu - neco jako groupware (klidne uprava opensour… — založil Jiri Huna
Tvorba webových stránek již od 3000Kč, tvorba 3D, mobilní aplikace p… — založil Programátor
O Projektu — založil Matej Zabsky
Úprava projektu — založil OndřejOndřej
Spolupráce na projektu — založil mheu
Moderátoři diskuze