abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
eParkomat, startup z ČR, postoupil mezi finalisty evropského akcelerátoru ChallengeUp!
Robot na pivo mu otevřel dveře k opravdovému byznysu
Internet věcí: Propojený svět? Už se to blíží...
dnes 16:38 | Komunita

Byly zveřejněny videozáznamy přednášek a workshopů z letošní konference OpenAlt konané 5. a 6. listopadu v Brně. K videozáznamům lze přistupovat ze stránky na SuperLectures nebo přes program konference, detaily o vybrané přednášce nebo workshopu a dále kliknutím na ikonku filmového pásu. Celkově bylo zpracováno 65 hodin z 89 přednášek a workshopů.

Ladislav Hagara | Komentářů: 0
dnes 11:30 | Komunita

Bylo oznámeno, že bude proveden bezpečnostní audit zdrojových kódů open source softwaru pro implementaci virtuálních privátních sítí OpenVPN. Audit provede Matthew D. Green (blog), uznávaný kryptolog a profesor na Univerzitě Johnse Hopkinse. Auditována bude verze 2.4 (aktuálně RC 1, stabilní verze je 2.3.14). Audit bude financován společností Private Internet Access [reddit].

Ladislav Hagara | Komentářů: 2
dnes 06:00 | Komunita

Na YouTube byl publikován Blender Institute Reel 2016, ani ne dvouminutový sestřih z filmů, které vznikly za posledních 10 let díky Blender Institutu. V institutu aktuálně pracují na novém filmu Agent 327. Dění kolem filmu lze sledovat na Blender Cloudu. Videoukázka Agenta 327 z června letošního roku na YouTube.

Ladislav Hagara | Komentářů: 0
dnes 01:02 | Zajímavý článek

Minulý týden byly vydány verze 1.2.3 a 1.1.7 webového poštovního klienta Roundcube. V oznámení o vydání bylo zmíněno řešení bezpečnostního problému nalezeného společností RIPS a souvisejícího s voláním funkce mail() v PHP. Tento týden byly zveřejněny podrobnosti. Útočník mohl pomocí speciálně připraveného emailu spustit na serveru libovolný příkaz. Stejně, jak je popsáno v článku Exploit PHP’s mail() to get remote code execution z roku 2014.

Ladislav Hagara | Komentářů: 1
včera 16:00 | Nová verze

Byla vydána verze 0.98 svobodného nelineárního video editoru Pitivi. Z novinek lze zmínit například přizpůsobitelné klávesové zkratky. Videoukázka práce s nejnovější verzí Pitivi na YouTube.

Ladislav Hagara | Komentářů: 1
včera 15:00 | Zajímavý software

Stop motion je technika animace, při níž je reálný objekt mezi jednotlivými snímky ručně upravován a posouván o malé úseky, tak aby po spojení vyvolala animace dojem spojitosti. Jaký software lze pro stop motion použít na Linuxu? Článek na OMG! Ubuntu! představuje Heron Animation. Ten bohužel podporuje pouze webové kamery. Podpora digitálních zrcadlovek je začleněna například v programu qStopMotion.

Ladislav Hagara | Komentářů: 5
7.12. 21:21 | Nová verze Ladislav Hagara | Komentářů: 0
7.12. 11:44 | Zajímavý projekt

Na Indiegogo byla spuštěna kampaň na podporu herní mini konzole a multimediálního centra RetroEngine Sigma od Doyodo. Předobjednat ji lze již od 49 dolarů. Požadovaná částka 20 000 dolarů byla překonána již 6 krát. Majitelé mini konzole si budou moci zahrát hry pro Atari VCS 2600, Sega Genesis nebo NES. Předinstalováno bude multimediální centrum Kodi.

Ladislav Hagara | Komentářů: 2
7.12. 00:10 | Nová verze

Byla vydána verze 4.7 redakčního systému WordPress. Kódové označením Vaughan bylo vybráno na počest americké jazzové zpěvačky Sarah "Sassy" Vaughan. Z novinek lze zmínit například novou výchozí šablonu Twenty Seventeen, náhledy pdf souborů nebo WordPress REST API.

Ladislav Hagara | Komentářů: 10
6.12. 12:00 | Zajímavý projekt

Projekt Termbox umožňuje vyzkoušet si linuxové distribuce Ubuntu, Debian, Fedora, CentOS a Arch Linux ve webovém prohlížeči. Řešení je postaveno na projektu HyperContainer. Podrobnosti v často kladených dotazech (FAQ). Zdrojové kódy jsou k dispozici na GitHubu [reddit].

Ladislav Hagara | Komentářů: 27
Kolik máte dat ve svém domovském adresáři na svém primárním osobním počítači?
 (32%)
 (24%)
 (29%)
 (7%)
 (5%)
 (3%)
Celkem 805 hlasů
 Komentářů: 50, poslední 29.11. 15:50
Rozcestník
Reklama

Dotaz: Problém s autoloadem

16.5.2012 20:38 Prosík
Problém s autoloadem
Přečteno: 489×

Dobry vecer. Zkousim novou funkci v php ale nejak nefunguje jak by asi mela. Trida se porad naita i kdyz neexistuje. Mrkne na to prosim nekdo?

     function __autoload($class){
      
        if(class_exists($class))
           error("Class: $class Not Found!");
        else
           include_once(dirname(__FILE__).'/class/'.$class.'.php');
     }

Odpovědi

16.5.2012 20:55 Kit
Rozbalit Rozbalit vše Re: Problém s autoloadem
A co kdybys to trochu zjednodušil?
function __autoload($class){
   include(dirname(__FILE__).'/class/'.$class.'.php');
}
Funkce class_exists($class) se totiž pokouší třídu natáhnout. V autoloaderu nemá co pohledávat.
16.5.2012 22:50 Prosík
Rozbalit Rozbalit vše Re: Problém s autoloadem
Pokud se snaží class_exists() třídu natáhnout tak je to špatně, máš pravdu, ale jak jinak můžu zjistit, jestli požadovaná class neexistuje a spustit nějakou chybovou funkci.. Díky
16.5.2012 23:10 Kit
Rozbalit Rozbalit vše Re: Problém s autoloadem
Nejlépe nijak. Stačí zachytit chybu při neúspěšném natažení. Zjišťování existence třídy předem je zbytečné a zdržující. Autoloader musí být rychlý.
17.5.2012 12:10 Prosík
Rozbalit Rozbalit vše Re: Problém s autoloadem
Na include v if jsem úplně zapoměl :-( To by se tím asi vyřešilo..

Může mi někdo ještě objasnit tuto chybu, kterou vrací tento kód?

     class foo
     {
          public $convert;
          public function __construct()
          {
               $this->convert = 'text';
          }

          public function __toString()
          {
               return $this->convert;
          }
     }

     if(class_exists(foo))
     {
       echo "existuje";
     }
     else
     {
       echo "neexistuje";
     }


Notice: Use of undefined constant foo - assumed 'foo' in /var/www/index.php on line 102 existuje
Díky
17.5.2012 12:23 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Problém s autoloadem
  if(class_exists('foo'))
//vs
  if(class_exists(foo))
…to musí být vidět i při rozumě vysvícené syntaxi :-)
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
17.5.2012 12:38 Kit
Rozbalit Rozbalit vše Re: Problém s autoloadem
Dotaz byl zodpovězen, proto se zeptám: Proč testuješ existenci třídy před vytvořením instance? Vždyť to děsně znepřehledňuje aplikaci a je to k ničemu. Tak to vůbec nebylo navrženo. Prostě tu instanci vytvoř a hotovo. O zbytek se postará ošetření chyb, které si můžeš upravit podle potřeby.

Když otvíráš soubor funkcí fopen(), tak také předem netestuješ, zda ten soubor existuje. Prostě ho otevřeš a pak teprve zjistíš, jestli přitom náhodou nedošlo k chybě.
Josef Kufner avatar 17.5.2012 02:02 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: Problém s autoloadem
Můžeš testovat, zda se povedl include. Tu chybu se však dozvíš o kousek později, protože se nepovede vytvořit instanci dané třídy.

Pokud chceš selhat už v autoloadu, použij require namísto include.

Pokud include neselže, ale třída i tak neexistuje (překlep v hlavičce třídy), projeví se to tak, že v logu bude chyba o neexistující třídě, ale nebude tam chyba z autoloaderu.
Hello world ! Segmentation fault (core dumped)
16.5.2012 22:59 Prosík
Rozbalit Rozbalit vše Re: Problém s autoloadem
KITe, existuje nějaký ten __autoload nebo něco podobného i pro funkce? Díky
16.5.2012 23:12 Kit
Rozbalit Rozbalit vše Re: Problém s autoloadem
Možná existuje, ale nevím o tom. Nikdy jsem to nepotřeboval a myslím si, že ani potřebovat nebudu. Objekty mi stačí.
Josef Kufner avatar 17.5.2012 13:49 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: Problém s autoloadem
Teoreticky bys nic takového neměl vůbec potřebovat. A pokud máš pocit, že ano, předělej to na objekty – v budoucnu budeš rád.
Hello world ! Segmentation fault (core dumped)
17.5.2012 18:29 Prosík
Rozbalit Rozbalit vše Re: Problém s autoloadem
No nevím proč psát 4x tolik kódu navíc a ještě si tak znepřehlednit kód. Pokud budu chtít vrátit z nějaké class text Výsledný text tak to napíšu na 20řádků
     class foo
     {
          public $convert;

          public function __construct()
          {
               return 'Výsledný text';
          }

          public function __toString()
          {
               return $this->convert;
          }
     }

     echo new foo();
Pokud budu chtít vrátit z nějaké funkce text Výsledný text tak to napíšu na řádků 5
     function foo()
     {
          return 'Výsledný text';
     }

     echo foo();
Tak že nějaký autoload na funkce by se mi fakt šikl..
17.5.2012 18:42 Kit
Rozbalit Rozbalit vše Re: Problém s autoloadem
Problém je v tom, že neumíš psát objektově. Uvedený příklad je velmi primitivní a spíš nahrává obyčejné funkci, ale ani objektově to není dlouhé. Kromě toho máš tu objektovou verzi špatně.
class foo {
    public function __toString() {
        return 'Výsledný text';
    }
}

echo new foo();
Josef Kufner avatar 17.5.2012 21:16 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: Problém s autoloadem
Tak, tak. Jakmile pak dojde na složitější případy, tak se to bohatě vrátí, protože můžeš kód hezky rozdělit díky privátním metodám. Navíc pak není problém přidat nějaký ten rekurzivní algoritmus, aniž by se zabordelil globální jmenný prostor (můžeš použít hezké a krátké názvy metod).
Hello world ! Segmentation fault (core dumped)
20.5.2012 17:05 Prosík
Rozbalit Rozbalit vše Re: Problém s autoloadem
Co se ti na te class nelíbí? To co jsi mi opravil je možné jen u tohoto případu, když __toString() nedokáže předat žádný parametr. Navíc neexistuje způsob jak vypsat objekt bez použití __toString(). Čili __construct() musím použít vždy když chci dostat do class nějaké parametry z venku. Tak že s myslím, že jsem to měl dobře.
Josef Kufner avatar 20.5.2012 17:10 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: Problém s autoloadem
Neměl ;-)
Hello world ! Segmentation fault (core dumped)
20.5.2012 17:18 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Problém s autoloadem
Mě jsi to blbě, konstruktor nic nevrací viz manuál - návratová hodnota je void (a obecně je to prostě tak). A v té class je úplně zbytečný.

když __toString() nedokáže předat žádný parametr
To by taky nedávalo smysl, tam předávat parametry.

Navíc neexistuje způsob jak vypsat objekt bez použití __toString()
Jakoukoliv metodou můžeš vypsat co chceš, o vypisování objektu bych nemluvil - není jasné co tím myslíš.

Čili __construct() musím použít vždy když chci dostat do class nějaké parametry z venku
Ano, pokud chceš objekt inicializovat, inicializuješ jej obvykle přes konstruktor, ale už asi nebude tak běžné mít členské proměnné public.

Tak že s myslím, že jsem to měl dobře.
Ne, bylo to špatně :) a pravděpodobně s nepochopením objektového programování…
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
20.5.2012 17:31 Prosík
Rozbalit Rozbalit vše Re: Problém s autoloadem
Konstruktor sice nic nevraci ale spusti automaticky kod uvnitr class ihned po vytvoreni instance. Pokud tedy vytvorim instanci typu
echo new foo($pdo, $val)
a nebudu pouzivat konstruktor tak by me zajimalo jak vy ta class mela vypadat.. Díky
20.5.2012 18:47 Prosík
Rozbalit Rozbalit vše Re: Problém s autoloadem
A najednou všichni mlčí...
20.5.2012 19:13 Kit
Rozbalit Rozbalit vše Re: Problém s autoloadem
Asi mají něco jiného na práci. Zkus si mezitím najít nějakou vhodnou učebnici OOP.
20.5.2012 19:39 Prosík
Rozbalit Rozbalit vše Re: Problém s autoloadem
Jak se jedna o kritiku jsou tu hned a jak se jedna o objasneni mají spoustu práce :-D
20.5.2012 19:48 Kit
Rozbalit Rozbalit vše Re: Problém s autoloadem
Protože jsi stále nepochopil smysl OOP. Bereš to jako brzdu, ne jako přínos. Volíš tak primitivní příklady, že nemá smysl je řešit objektově ani ve funkci. Je jasné, že v tom případě vyjde objektové řešení nejdelší.

K tématu: Pokud chceš zpracovat vstupní parametry při vytváření objektu, tak samozřejmě musíš napsat konstruktor. Můžeš ho i zdědit.
20.5.2012 19:54 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Problém s autoloadem
Za ty dvě hodiny cos měl čas to nastudovat bys už to objasnění mohl napsat sám, ne? ;) Nespoléhej na to, že ti ostatní do hlavy namlátí to, co by si tam můžeš vložit sám.
20.5.2012 20:27 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Problém s autoloadem
Konstruktor sice nic nevrací
Pokud to víš, tak proč tam píšeš: return 'Výsledný text';

spusti automaticky kod uvnitr class ihned po vytvoreni instance
No, hlavně by ten kód měl sloužil k inicializaci instance…

Takže to zopakuji: „Ano, pokud chceš objekt inicializovat, inicializuješ jej obvykle přes konstruktor…“, ovšem v tvém příkladu žádná inicializace nebyla, tedy je konstruktor zbytečný.

echo new foo($pdo, $val) není zrovna typické využít, nebo dokonce nějaká výhoda. OOP je „kapánek“ o něčem jiném.

a nebudu pouzivat konstruktor tak by me zajimalo jak vy ta class mela vypadat
Vypisovat ti jak se dělá třeba tovární metoda či třída, jak se používají inicializační funkce a co je vlastně class, nemá v tomto stadiu vůbec význam, pokud nezačneš sám a to od píky…
Pokud si myslíš, že OOP ti komplikuje život, tak krom toho, že je to tím, že tomu nerozumíš, tak OOP nepoužívej.

A najednou všichni mlčí...
Zameť si před vlastním prahem, tvé reakce taky nejsou zrovna šup-šup…
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
20.5.2012 21:16 Prosík
Rozbalit Rozbalit vše Re: Problém s autoloadem
Zameť si před vlastním prahem, tvé reakce taky nejsou zrovna šup-šup…
To nebylo myšleno nijak zle.. ;)
20.5.2012 22:51 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Problém s autoloadem
Taky nekřičím…
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
21.5.2012 14:46 Prosík
Rozbalit Rozbalit vše Re: Problém s autoloadem
Tak snad jsem to už udělal dobře akorát nevím který zápis je lepší
class map{
   public $pdo;
   public function __construct($pdo){
      $this->pdo = $pdo;
   }

   public function __toString(){
      $pdo = $this->pdo;
      $result = false;
      $result .= '<ul id="menu">';
      foreach($pdo->query('SELECT * FROM `menu` WHERE `parent` = 0') as $row){
         $result .= '<li>'.$row['name'].'</li>';
         $result .= '</ul>';
      }

      return $result;
   }
}

echo New map($pdo);


nebo tento zápis

class map{
   public $str;
   public function __construct($pdo){
      $result = false;
      $result .= '<ul id="menu">';
      foreach($pdo->query('SELECT * FROM `menu` WHERE `parent` = 0') as $row){
         $result .= '<li>'.$row['name'].'</li>';
         $result .= '</ul>';
         $this->str = $result;
      }
   }

   public function __toString(){
      return $str;
   }
}

echo New map($pdo);
Děkuji za info...
21.5.2012 17:38 Kit
Rozbalit Rozbalit vše Re: Problém s autoloadem
Pokud by se v DB nacházela data od uživatele, máš zaděláno na XSS. Na výstupu používej htmlspecialchars().

Zkus udělat něco mezi. Snad přitom pochopíš, co patří do konstruktoru (vytváříš objekt třídy Map) a co do prezentující metody. Ten objekt nejspíš bude obsahovat seznam položek získaných z DB ve formě pole.

metoda __toString() bude tato data prezentovat, na toto pole tedy aplikuješ zmíněnou funkci htmlspecialchars() a obalíš příslušnými značkami HTML. To se dá udělat jedním příkazem.

Když to tak rozdělíš, budeš to mít ještě kratší, ale hlavně se to bude chovat jako objekt.

Je dobrým zvykem pojmenovávat třídy s velkým písmenem na začátku. Budeš si s námi (i s učebnicemi) lépe rozumět. Naopak operátor new se obvykle píše malými.
21.5.2012 19:44 Prosík
Rozbalit Rozbalit vše Re: Problém s autoloadem
Jedná se o data které jsou soucasti webu, cili k nim user nema pristup.
Když to tak rozdělíš, budeš to mít ještě kratší, ale hlavně se to bude chovat jako objekt.
Teto vete vubec nerozumi jak to myslis. Hodne rad bych to mel kratsi ;)
21.5.2012 20:51 Kit
Rozbalit Rozbalit vše Re: Problém s autoloadem
Dobrá, menu je menu, to si vytváříš sám, tak si tam nic špatného nenastrkáš. Snad.

Osobně bych to napsal asi takto:
<?php
class Map{
  private $menu;

  public function __construct($pdo,$parent){
    $prep=$pdo->prepare('SELECT `name` FROM `menu` WHERE `parent` = ?;');
    $prep->execute(array($parent));
    $this->menu=$prep->fetchAll(PDO::FETCH_COLUMN, 0);
  }

  public function __toString(){
    return '<ul id="menu"><li>'.implode("</li>\n<li>",array_map('htmlspecialchars',$this->menu))."<li></ul>\n";
  }
}

echo new Map($pdo,0);
Všimni si, že jsem v konstruktoru vytvořil objekt a zároveň ho naplnil daty. Můžeš a nemusíš udělat další metody, které přidají nebo odeberou další položky; metody, které to po změnách uloží zpět do DB apod.

Metoda __toString() toto pole přemění na finální HTML. Pro názornost jsem tam vložil i funkci htmlspecialchars(), ale pokud je to jen menu, tak tam být nemusí.

Doporučuji striktně oddělovat práci s databází a generování výstupu. Vyplatí se to.

Všimni si, že jsem doplnil parametr $parent. Tím se sice konstruktor natáhl o 2 řádky, ale stal se obecnější.

Bude se to chovat podivně, pokud menu bude prázdné, ale nechtělo se mi vymýšlet další redukční funkci - implode() snad postačí.
21.5.2012 20:52 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Problém s autoloadem
Ty já ti nevím: „je nezralé jablko nebo zelený banán čerstvější zelenina?" 2> /dev/null
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
Josef Kufner avatar 22.5.2012 01:38 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: Problém s autoloadem
Ani jedno není dobře. Největší chybou je v obou případech motání všeho dohromady. Pokud máš v jedné metodě HTML značky a select, tak to téměř jistě máš blbě uspořádané.

Další věc je, že napojování řetězců je pomalé. Tedy, pomalejší než echo.

A proč připojuješ řetězec k booleanu? Přečti si něco o datových typech.
class Map
{
   private $result;

   public function query($pdo)
   {
      $this->result = $pdo->query('SELECT * FROM `menu` WHERE `parent` = 0');
   }

   public function echo()
   {
      echo "<ul class=\"menu\">\n";
      foreach($this->result as $row) {
         echo '<li>', $row['name'], "</li>\n";
      }
      echo "</ul>\n";
   }

   public function __toStrig()
   {
      ob_start();
      $this->echo();
      return ob_get_clean();
   }
}

$map = new Map();
$map->query($pdo);
$map->echo();
Protože až budeš chtít nastavit parent, před dotázáním se databáze, uděláš to takle:
class Map
{
   private $result;
   private $parent = 0;

   public function setParent($parent)
   {
      $this->parent = $parent;
   }

   public function query($pdo)
   {
      $q = $pdo->prepare('SELECT * FROM `menu` WHERE `parent` = :parent');
      $q->bindParam(':parent', $this->parent, PDO::PARAM_INT);
      $this->result = $q->execute();
   }

   public function echo()
   {
      echo "<ul class=\"menu\">\n";
      foreach($this->result as $row) {
         echo '<li>', $row['name'], "</li>\n";
      }
      echo "</ul>\n";
   }

   public function __toStrig()
   {
      ob_start();
      $this->echo();
      return ob_get_clean();
   }
}

$map = new Map();
$map->setParent(3);
$map->query($pdo);
$map->echo();
Hello world ! Segmentation fault (core dumped)
22.5.2012 10:25 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Problém s autoloadem
Tak.
Ještě odstranit to 2> /dev/null a je to hotové :-).
Je z toho i patrné, že __toStrig() nemusí být, tak důležité…
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
22.5.2012 14:14 Kit
Rozbalit Rozbalit vše Re: Problém s autoloadem
__toStrig() je jen syntaktický cukr, který mi například umožňuje vkládat identifikátory objektů přímo do Heredoc. Je to velmi pohodlné. Pochopím, pokud se to pravověrným programátorům nebude líbit, ale mně to vyhovuje.
Josef Kufner avatar 22.5.2012 14:56 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: Problém s autoloadem
Jestli ono by takový syntaktický cukr neměl být spíš součástí šablonovacího systému...
Hello world ! Segmentation fault (core dumped)
22.5.2012 21:07 Kit
Rozbalit Rozbalit vše Re: Problém s autoloadem
Pokud bych potřeboval data do šablonovacího systému, tak nebudu výstup dat generovat v podobě stringu, ale derivačního stromu. Tím pádem by ale byl název metody __toString() nelogický. Metoda __toString() nám stále zůstane na jednoduchý export stringu.
Josef Kufner avatar 22.5.2012 21:50 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: Problém s autoloadem
Neměl bys tolik studovat…
Hello world ! Segmentation fault (core dumped)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.