O šetření časem a také o jednom skriptu pro stahování toho posledního souboru (akt.)

Tohle mám nejradši. Hodinka investovaná do napsání skriptu, o kterém vím, že mi v budoucnu ušetří… no řekněme víc než hodinu.

Šetří čas, a to je hlavní. Rád šetřím čas. Proto většinou nic neprogramuju ani nedělám nic jiného, pouze přemýšlím. Přemýšlím, abych poté, co něco dělat začnu, nemusel přemýšlet nad celkem. Věřím, že mnozí z vás programátorů se po svém prvním milionu řádků (kvalitního objektového PHP kódu) na chvíli zastavili a řekli si: „Kdybych místo toho bušení se jen na chvilku zastavil a přemýšlel, určitě by jich stačilo tak 600 000.“

Ostatně proto nerad programuji. Je to hrozná práce, zdlouhavá, je to maraton… a já jsem sprinter. Nemám rád, když musím celou dobu držet v hlavě jasný obraz a rutinně ho přenášet do funkční podoby. Leonardo taky nestavěl všechny své stroje: stačilo mu, že napsal dokumentaci.

Ale s PHP je to ještě v pořádku, psaní v PHP je rychlé, PHP je tolerantní, možná občas nepředvídatelné, ale s tím se já takřka nesektávám a užívám si relativní nevázanosti. Že PHP mám vlastně docela rád si vzpomenu vždy, když otevřu Delphi. Zrovna včera mě napadlo, že bych mohl přidat jednu drobnost do Čajoměřiče a bylo to tu: Chceš proměnnou chlapečku? Ale prvně si ji nadeklaruj! Funkci? Zrovna tak! Co děláš s těma závorkama? Zapomněl jsi? Tady se neflákáme, tady se poctivě píše prvně begin a potom end… Tak proto se Čajoměřič dočká už pouze jednoho, posledního vydání. Jsem líný.

Konečně k věci

Zpět k tématu dne, dnešní skript si:

  1. vytvoří seznam souborů v jeho složce
  2. vyřadí ze seznamu ty, které nesplňují stanovená kritéria
  3. seřadí je abecedně a také podle verzí v názvu souboru
  4. a přesměruje vás to na poslední – nejaktuálnější sou­bor

Tohle vám ušetří čas, pokud alespoň někdy publikujete cokoliv, u čeho se očekává nová verze a číslo verze je také součástí jména souboru. Skript vás proto může nasměrovat na ten nejaktuálnější soubor. Fantastické, že?

Update: A díky muži s tajemnou přezdívkou dgx si můžete i vy užít skript ve verzi 1.1, která odstraňuje dříve proklamované nedostatky! Díky!

Update 2: Přidána podpora pro soubory s příponou tar.*.

Stáhnout skript (verze 1.2, *.RAR, 1KB)

Krátký praktický příklad užití

Představte si, že vyvíjíte plugin, nazvěme ho Raven's antispam. Přibližně každé dva měsíce vydáváte novou verzi. Právě teď nastal čas. Čerstvé soubory zabalíte do archivu, soubor vhodně pojmenujete jako ravens-as-1.6.zip. Poté ho nahrajete na server, zkopírujete URL a na všech místech na webu adresu zaktualizujete. Doufáte, že jste žádné místo neopoměli a tedy žádný link neodkazuje na verzi starou.

Anebo ne. Anebo si stáhnete Kahiho skript, otevřete ho, proměnnou $base nastavíte jako ravens-as-, protože takto se vždy budou vaše archivy jmenovat. Ovšem žádné nastaní, ani toto, provádět nemusíte, zvláště pokud se ve složce s archivy nevyskytují soubory jiných jmen a jiných typů. Nahrajte soubor index.php do složky s archivy.

Dříve byste jste odkazovali na kahi.cz/ra/ravens-as-1.6.zip ale teď ne, teď odkážete na kahi.cz/ra/ a od tohoto okamžiku až navždy – už nebudete muset odkazy upravovat. Skript bude vždy nabízet soubor nejvyšší verze.

Pokud chcete poskytovat verzované soubory ve více formátech (a mít je ve stejné složce), není problém udělat dodatečně další probírku: odkažte na:

  • kahi.cz/ra/?type=.rar
  • kahi.cz/ra/?type=.tar.gz
  • kahi.cz/ra/?type=.md5
  • a tak dále.

Není něco jasné? Zeptejte se v komentářích!


Komentáře (6)

k formuláři

RSS kanál komentářů

    • Komentář číslo: 1
    • *
    • Jméno: dgx
    • Odesláno:
      28.8. 2007 — 22:18
    1. odstraň koncovku ‚.zip‘
    2. použij natcasesort()
    • Komentář číslo: 2
    • *
    • Jméno: dgx
    • Odesláno:
      28.8. 2007 — 22:20

    No, abych to s tou stručností nepřeháněl :-)

    ad 1) vyřeší správné řazení 2.2 vs. 2.2.1

    ad 2) vyřeší správné řazení 2.11.3 vs. 2.2

    • Komentář číslo: 3
    • *
    • Jméno: Kahi
    • Odesláno:
      28.8. 2007 — 22:54

    [1] dgx: → Jojo, na tohle jsem čekal! (A takle blízko jsem byl!) Teď potřebuju chvilku na pochopení… protože jestli to má být nezávislé na příponě, tak si je tam musím před uříznutím uložit… Ach jo. :-)

    • Komentář číslo: 4
    • *
    • Jméno: Lokutus
    • Odesláno:
      12.9. 2007 — 18:06

    Nebude další verze čajoměřiče? Škoda. Čekal jsem na verzi, která mi podle rychlosti myši změří systolický a diastolický tlak.

    • Komentář číslo: 5
    • *
    • Jméno: Kahi
    • Odesláno:
      12.9. 2007 — 20:14

    [4] Lokutus: → Bohužel Lokute, vývoj Čajoměřiče je příliš náročný na udržování stabilního krevního tlaku. Přestože původně jsem ho chtěl naučit dělat i základní lékařské vyšetření. Tlak, tep, teplota krve a jiné banální parametry by nebyly problém implementovat, ale pak přijdou další lidé a další a další požadavky, jako třeba rozbor krve na leukémii nebo syfilis, a to už není taková brn-kačka.

  1. […] hours. Oh, no. I've just expended them while making this script public. By this article, and the Czech one. […]

Přidat komentář

Nápověda ke psaní komentářů

Zde formátuje Texy!

  • *zvýraznění*
  • **silné zvýraznění**
  • > citace
  • "odkaz":http://kam
  • [4] reakce na komentář
  • zdrojové kódy a více

komentáře

úplně nahoru