Názory ke článku Kniha návštěv s PHP a metatable – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Názory ke článku Kniha návštěv s PHP a metatable – Programujte.comNázory ke článku Kniha návštěv s PHP a metatable – Programujte.com

 

Názory ke článku Kniha návštěv s PHP a metatable

vrana   NOVÝ
5. 8. 2009

Popsaný návrh databáze nedovoluje vložit v jedné sekundě dva příspěvky.

Funkci

__halt_compiler
doporučuji ukončovat pomocí
__halt_compiler() ?>
, protože editory potom správně zvýrazní zdrojový kód a zbytek dokumentu není potřeba při zpracování trimovat.
?>
je v PHP platný ukončovač příkazu spolu se středníkem, navíc mu může následovat konec řádku.

bukaj_001   NOVÝ
5. 8. 2009

Reagoval na komentář od uživatele Jakub Vrána :
Popsaný návrh databáze nedovoluje vložit v jedné sekundě dva příspěvky.
Pravda. Snažil jsem se využít toho, že data v metatable jsou ukládána a vracena seřazená podle názvu řádku a sloupce. Naštěstí existuje jednoduchý způsob, jak toto opravit – užít ještě mikrosekundy (vzhledem k latenci úložných zařízení by na dnešním hardware /alespoň doufám/ nemělo být možné provést celý proces ukládání za méně jak jednu mikrosekundu). Na to je jednoduchý patch:

diff --git a/index.php b/index.php

index 59f371e..1c85d6a 100644
--- a/index.php
+++ b/index.php
@@ -44,7 +44,9 @@ ${'@form'}->addSubmit('ok', 'Přidat')
->onClick[] = '_add';
function _add()
{
- $now = date('Y-m-d H:i:s');
+ $now = date('Y-m-d H:i:s', (int) ($_ = microtime(true))) .
+ '.' . round(($_ - floor($_)) * 1000000);
+
foreach ($GLOBALS['@form']->getValues() as $k => $v)
$GLOBALS['@table']->set($now, $k, $v);
$GLOBALS['@table']->set('=', $now, TRUE);


date('u') nějak nevracelo, co bych si představoval, tak jsem se inspiroval na
http://php.net/manual/en/function.date.php#85376


Ukončovat __halt_compiler() pomocí ?> je hezké, přidám to do repozitáře.

Santas   NOVÝ
5. 8. 2009

Treba si niečo prečítať o bezpečnosti keď chce niekto niekoho učiť

bukaj_001   NOVÝ
5. 8. 2009

Reagoval na komentář od uživatele Santas :
Treba si niečo prečítať o bezpečnosti keď chce niekto niekoho učiť
Tohle je záležitost Texy[1] a jak si ji kdo nastaví. Přiznám se, že já ji moc nenastavoval, ale stačí:

$texy = new Texy;

$texy->allowedTags = Texy::NONE;
${'@filter:texy'} = fn(array($texy, 'process'), array(fn::ph()));


A hle, nelze vkládat žádné <script>y, ani žádné jiné tagy ;-) O tom všem se dá dočíst v dokumentaci Texy[2].

Děkuji za upozornění.

[1] http://texy.info/
[2] http://texy.info/cs/api

vrana   NOVÝ
6. 8. 2009

Reagoval na komentář od uživatele Jakub Kulhan :

Řeší to příznaky problému, ale nikoliv problém. Principielně je samozřejmě možné, aby dva záznamy vznikly i se stejným mikročasem. Disky si data ukládají do cache a kontext dvou požadavků se může klidně přepnout v rámci jedné mikrosekundy. Granularita funkce microtime() je navíc na většině platforem jen .0001 a ne .000001, jak by se z názvu mohlo zdát.

Vyřešit by se to dalo tak, že by se za čas přidal nějaký skutečně unikátní identifikátor, pro jednoduchost by stačil třeba počet záznamů v tabulce. Tedy pokud se z ní nebude mazat, jinak by bylo potřeba ID posledního + 1 nebo třeba uniqid().

survik1   NOVÝ
7. 8. 2009

No, řešení se mi zdá zbytečně složté, avšak je zajímavé si pročítat informace (alespoň kusé) o jednotlivých přídavných knižnicích.

Libor   NOVÝ
7. 9. 2009

zajímavé, ale ke čtení to není...když si vezmu to, že musím pořád odcházet ze stránky s textem někam pryč, tak je to článěk na dvě věci...takže autore promin, ale tohle je hnus...jinak "at" mě zaujalo...díky za tip

Jirka Zábra   NOVÝ
6. 12. 2009

Kniha návštěv šlape naprosto skvěle. Jenom se mi nepodařilo zjistit jak smazat vybraný příspěvek. Poraďte prosím naprostému amatérovi.

díky

Říhy   NOVÝ
9. 2. 2010

Reagoval na komentář od uživatele Tomáš Neumaier : Hej, já jsem totální začátečník a toto mi moc jednoduché něpřijde xD. Ne, fpoho, jinak mazec stránky, skvělý projekt, jen tak dál x). Já jenom, že pro úplný blby by se to dalo řešit třeba jen s pomocí funkce echo a pár podmínek k tomu x). Toto určitě pochopím tak za půl roku nejdřív xD

Ronnie   NOVÝ
28. 10. 2010

Google <a href="http://google.com">google</a>

Alfonzo   NOVÝ
29. 10. 2010

Google [URL=http://google.com]google[/URL]

Přidej svůj názor

×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:
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo e-mailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Reaguješ na příspěvek:
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové názory e-mailem (pouze pro přihlášené)
Sleduj názory ke článku a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.



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