Evropská komise zahájila tři vyšetřování týkající se cloudových platforem Amazon Web Services (AWS) a Microsoft Azure. Evropská exekutiva, která plní také funkci unijního antimonopolního orgánu, chce mimo jiné určit, zda jsou americké společnosti Microsoft a Amazon v cloudových službách takzvanými gatekeepery, tedy hráči, kteří významně ovlivňují provoz internetu a musí dle nařízení o digitálních trzích (DMA) na společném trhu
… více »Společnost Meta Platforms vyhrála ostře sledovaný spor o akvizici sítě pro sdílení fotografií Instagram a komunikační aplikace WhatsApp. Podle amerického soudu firma jejich převzetím neporušila antimonopolní zákon, protože si tak nemonopolizovala trh sociálních sítí. Žalobu na Metu podala před pěti lety americká Federální obchodní komise (FTC). FTC argumentovala, že Meta, tehdy známá jako Facebook, koupila tyto dvě společnosti v letech 2012 a 2014 proto, aby s nimi nemusela soutěžit.
Home Assistant včera představil svůj nejnovější oficiální hardware: Home Assistant Connect ZBT-2 pro připojení zařízení na sítích Zigbee nebo Thread.
Byla vydána verze 9.1 open source virtualizační platformy Proxmox VE (Proxmox Virtual Environment, Wikipedie) založené na Debianu. Přehled novinek v poznámkách k vydání a informačním videu.
Byl aktualizován seznam 500 nejvýkonnějších superpočítačů na světě TOP500. Nejvýkonnějším superpočítačem zůstává El Capitan od HPE (Cray) s výkonem 1,809 exaFLOPS. Druhý Frontier má výkon 1,353 exaFLOPS. Třetí Aurora má výkon 1,012 exaFLOPS. Nejvýkonnější superpočítač v Evropě JUPITER Booster s výkonem 1,000 exaFLOPS je na čtvrtém místě. Nejvýkonnější český superpočítač C24 klesl na 192. místo. Karolina, GPU partition klesla na 224. místo a Karolina, CPU partition na 450. místo. Další přehledy a statistiky na stránkách projektu.
Microsoft představil Azure Cobalt 200, tj. svůj vlastní SoC (System-on-Chip) postavený na ARM a optimalizovaný pro cloud.
Co způsobilo včerejší nejhorší výpadek Cloudflare od roku 2019? Nebyl to kybernetický útok. Vše začalo změnou oprávnění v jednom z databázových systémů a pokračovalo vygenerováním problém způsobujícího konfiguračního souboru a jeho distribucí na všechny počítače Cloudflare. Podrobně v příspěvku na blogu Cloudflare.
Byla vydána (Mastodon, 𝕏) první RC verze GIMPu 3.2. Přehled novinek v oznámení o vydání. Podrobně v souboru NEWS na GitLabu.
Eugen Rochko, zakladatel Mastodonu, tj. sociální sítě, která není na prodej, oznámil, že po téměř 10 letech odstupuje z pozice CEO a převádí vlastnictví ochranné známky a dalších aktiv na neziskovou organizaci Mastodon.
Byla vydána nová major verze 5.0 svobodného 3D softwaru Blender. Přehled novinek i s náhledy a videi v obsáhlých poznámkách k vydání. Videopředstavení na YouTube.
Podstatná část dat, která uživatel předává serveru je předávána přes formulář, který uživatel vyplní a odešle na server. Tam je ověřeno, zda jsou data validní a případně zpracovány. Zend obsahuje třídu Zend_Form, která krom toho, že umožňuje vytvořit formulář a získat z něj data navíc umožňuje další věci, jako navěšení validátorů pro validaci obsahu, přidání filtrů a nebo obalení jednotlivých elementů formuláře HTML tagy. Toto vše ani nemusíme provádět v php kódu, celý formulář totiž můžeme definovat v konfiguračním souboru. Osobně ale nejvíce oceňuji právě možnost přidání validátorů, případně filtrů, na jednotlivé elementy, přičemž většina běžně používaných validátorů i filtrů je již v Zendu implementovaná.
Po vytvoření formuláře obvykle jako první nastavíme akci, která se provede při odeslání formuláře a metodu, jakou se budou předávat data:
$form = new Zend_Form();
$form->setAction('/zendTest/login/auth')
->setMethod('post');
Pomocí metody setAttrib('attribName','attribValue') můžeme formuláři nastavit jakýkoli další atribut. Elementy formuláře vytvoříme zavoláním metody createElement('elementType', 'elementName'). Na elementy formuláře pak můžeme navěsit validátory (a filtry):
$login = $form->createElement('text', 'username');
$login->addValidator('alnum')
->addValidator('stringLength', false, array(5))
->setRequired(true)
$passwd = $form->createElement('password', 'passwd');
$passwd->addValidator('StringLength', false, array(5))
->setRequired(true)
V tomto příkladě jsme vytvořili dva elementy formuláře, pole pro zadání uživatelského jména a pole pro zadání hesla. Obě políčka musí být vyplněná (setRequired(true)) a obsahovat minimálně pět znaků (addValidator('StringLength', false, array(5))). První parametr metody addValidator je jméno validátoru, druhý říká, zda má pokracovat vyhodnocování dalších validátorů, pokud podmínka aktuálního validátoru není splněná a poslední předává další parametry potřebné pro vyhodnocení. První validátor (alphanum) vyžaduje, jak již název napovídá, aby login uživatele obsahoval jen alfanumerické znaky.
Filtry by se přidávaly obdobně:
$login->addFilter('StringtoLower');
Seznam všech již naprogramovaných filtrů a validátorů naleznete v manuálu a pokud vám nebudou vyhovovat, můžete si napsat vlastní.
Na závěr oba prvky přidáme do formuláře (zatím jsme je jen vytvořili, ale nikoli přidali do formuláře) a přidáme ještě poslední element - tlačítko pro odeslání:
$form->addElement($login)
->addElement($passwd)
->addElement('submit', 'login', array('label' => 'Login'));
Formulář pak předáme do view:
$this->view->form = $form;
$this->render('showform');
a ve view (showform.phtml) zobrazíme:
<?= $this->form ?>
Zda jsou data odeslaná přes formulář validní zjistíme zavoláním metody isValid():
$form->isValid($_POST)Pokud ano, data z formuláře můžeme získat několika způsoby, např:
$values = $form->getValues();(a nebo třeba přímo z requestu:
this->_request->getPost('username'))
Na závěr se ještě letmo zmíním o dekoratérech - prvcích, které elementy formuláře obalují HTML tagy. Opět platí, že si můžeme definovat vlastní. Pokud neučíme jinak, jsou k formuláři připojeny tyto čtyři dekoratéry:
ViewHelper - nastavuje view helper, který se použije k renderování elementu
Errors - přidává chybová hlášení (typicky když selže validace)
HtmlTag - obaluje element (a chyby s ním spojené) daným HTML tagem (defaultně nastaveno na <dd>)
Label - přidává tag <dt>
removeDecorator('name') na daném elementu:
$login->removeDecorator('Errors');
Celý kontroler pro přihlášení uživatele (zatím bez autentizace uživatele, jen odelání formuláře) by mohl vypadat takto (příklad je až na drobné úpravy celý převzatý z manuálu Zendu):
<?php
class LoginController extends Zend_Controller_Action
{
public function getLoginForm(){
$form = new Zend_Form();
$form->setAction('/zendTest/login/auth')
->setMethod('post');
$login = $form->createElement('text', 'username');
$login->addValidator('alnum')
->addValidator('stringLength', false, array(5))
->setRequired(true)
->removeDecorator('Errors');
$passwd = $form->createElement('password', 'passwd');
$passwd->addValidator('StringLength', false, array(5))
->setRequired(true)
->removeDecorator('Errors');
$form->addElement($login)
->addElement($passwd)
->addElement('submit', 'login', array('label' => 'Login'));
return $form;
}
public function indexAction(){
$this->view->form = $this->getLoginForm();
$this->render('showform');
}
public function authAction(){
if (!$this->getRequest()->isPost()) {
return $this->_forward('index');
}
$form = $this->getLoginForm();
if (!$form->isValid($_POST)) {
$this->view->form = $form;
return $this->render('showform');
}
// authentization
// ...
}
}
Tiskni
Sdílej:
Aspon podle www.pravidla.cz slovo dekoratér neexistuje. Stejne tak slovnik.cz dekorator neprelozi, ale dekorater prelozi mimo jine i jako decorator.
muzu se optat jakej je rozdil, ve volani metody? diky
$this -> getLoginForm();
a
self::getLoginForm();