Autor Zpráva
samotar
Profil
Cus all,

v moudrých knihách sem sa dočetl, že je občas zbytečné vypisovat furt stejný kód (např připojování k databázi) ale udělat si funkci, tu dat do odděleného souboru a pak si funkci pomocí include('soubor_s_funkci') načíst a jejím zavoláním použít.

Je to podle Vás dobrý přístup např u rozsáhlejšího webu?

thx
Casero
Profil
samotar
Ano, především u rozsáhlejších webů.
Alphard
Profil
třeba přihlašovací údaje k dazabázi se kvůli editaci nechávají v externích souborech AFAIK téměř vždy
Joker
Profil
Jednoznačně.

Pokud má člověk více projektů, vyplatí se podle mě si do těch souborů dát raději objekty. Je to pak jednodušší. Namísto psaní pořád dokola něčeho jako:
$server = "neco.cz";
$jmeno = "jmeno";
$heslo = "heslo";
$db = "databaze";

$pripojeni = mysql_connect($server, $jmeno, $heslo);
if(!$pripojeni) die("Chyba komunikace s db!");
mysql_select_db($db);
$sql = "SELECT * FROM tabulka";
if(!$vysledek = mysql_query($sql)) die("Chyba komunikace s db!");
while(mysql_fetch_array($vysledek){
...

stačí udělat třeba:
include("nastaveni.php");
include("class.database.php");
$database = new Database($server, $jmeno, $heslo, $db);
$sql = "SELECT * FROM tabulka";
$database->query($sql);
while($database->fetch_array()){
...
Petr Tichý
Profil
Já hlavičku a patičku webu neřeším jinak než přes include "header.php"; ...
samotar
Profil
jinak např když mám v souboru funkce.php který includuju

function spojeni()
{
global $spojeni;
$spojeni = mysql_connect("server", "jmeno", "heslo");
if (!$spojeni)
die ('Nepodařilo se připojit k databázovemu serveru');
}


musím tam dat global $spojeni; jinak sa mi nepodaří vybrat databázi na stránce která includuje soubor s funkcemi.


function vyb_db($databaze, $spojeni)
{
global $vyb_db;
$vyb_db = mysql_select_db($databaze, $spojeni);
if (!$vyb_db)
die ('Nepodařilo se vybrat databázi');
}


problém sem si vlastně vyřešil sám pomocí funkce global

zajímá mňa enom esi to neni nejaká php nechutnost vyřešit to takto...
Yrrah
Profil
samotar
Buď ta funkce může vracet proměnnou $spojeni.

Anebo to udělej objektově. Když si uděláš (nebo použiješ už hotový balík) objektově celou část pracující s databází, budeš to mít tak mnohem jednodušší.
Představ si, kdybys pak chtěl někdy přejít na jiný databázový stroj.
Joker
Profil
musím tam dat global $spojeni; jinak sa mi nepodaří vybrat databázi na stránce která includuje soubor s funkcemi.
Právě proto používám ty objekty, protože ty mají i svoje vlastní proměnné. Pak si nemusím zavádět proměnné jako $spojeni, $vysledek a podobně, všechno se drží uvnitř databázového objektu.
samotar
Profil
mno takze bych sa asi měl pustit do studia "objektového programování" v php pokud sem sa dobře vyjádřil, jednak z důvodu větší využitelnosti, jednak protože vývoj nelze zastavit nemýlím-li se ?:)
ronnie
Profil
Když už se bavíme o přihlašovacích údajích pro databázi, bylo by vhodnější je uložit do nějakého konfiguračního souboru, ideálně do ini souborů a pak je v nějaké funkci načíst (když se nebude bavit o objektech).
Alphard
Profil
nemýlím-li se ?:)
možná jo, bez snahy vyvolat flame si troufám tvrdit, že objektová cesta není v PHP jediná správná
Toto téma je uzamčeno. Odpověď nelze zaslat.