Skip to content

Instantly share code, notes, and snippets.

View VaclavSir's full-sized avatar

Václav Šír VaclavSir

View GitHub Profile
@VaclavSir
VaclavSir / form-checklist.md
Created November 12, 2013 17:49
Kontrola formulářů

Projít definici formuláře:

  • CSRF (addProtection).
  • Validační pravidla nepropustí hodnotu, kterou nelze zpracovat (onSuccess).
    • Pokud formulář plní entitu, validační pravidla musí být přinejmenším stejně přísná, jako pravidla na entitě a v databázi. Kontrolovat jak podle deklarace entity, tak podle DB tabulky, občas tam máme nesrovnalosti (ty nejlépe přitom odstranit).
    • Pokud prvek není setRequired, tak si zpracování musí poradit s prázdným řetězcem, nebo ho změnit na něco, s čím si poradí (třeba NULL).
    • Pokud SelectBox má prompt, tak může být hodnotou NULL (pokud není setRequired).
  • Formulář nemůže instancovat někdo, kdo k tomu nemá oprávnění.
    • Pokud celý presenter s tovární metodou vyžaduje minimálně stejný stupeň oprávnění, jako formulář, tak je splněno.
  • Jinak je nutné přidat nějakou kontrolu do té továrny.
@VaclavSir
VaclavSir / howto.md
Created September 25, 2013 15:39
How to clone a CodePlex project on Linux

There's some GnuTLS bug, that causes this error when cloning using git clone:

error: RPC failed; result=56, HTTP code = 200

Workaround:

mkdir your-project
<?php
namespace Test;
use Nette,
Tester,
Tester\Assert,
AdminModule;
$container = require __DIR__ . '/../../bootstrap.php';
<?php
namespace Articles;
use Nette\Application\UI\Presenter;
abstract class BasePresenter extends Presenter
{
public function formatTemplateFiles()
@VaclavSir
VaclavSir / optional-static-typing.latte
Last active December 19, 2015 23:08
Takový nápad...
{assertVariables
number => float,
message => string,
property => 'Hell\Model\Property',
identity => 'Nette\Security\IIdentity',
arrayOrIterator => 'Model\Item[]',
optionalParameter => 'SomeType|NULL'
anyType => mixed,
anyTypeOrNull => 'mixed|NULL',
anyArrayOrIterator => 'mixed[]'
@VaclavSir
VaclavSir / Code Igniter
Created July 14, 2013 13:46
Hello World benchmark.
$ ab -n 2000 -c 10 http://localhost/framework-bench/helloworld/codeigniter/index.php/say/hello
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking localhost (be patient)
Completed 200 requests
Completed 400 requests
Completed 600 requests
Completed 800 requests
@VaclavSir
VaclavSir / dequote.php
Created May 7, 2013 06:40
Skript pro odstranění znaku "větší než" ze začátku řádků textu.
<?php
header('Content-type: text/html; charset=utf-8');
?>
<title>De-Quote</title>
<form method="post">
<textarea name="input" cols="80" rows="10"><?php echo htmlspecialchars(@$_POST['input']); ?></textarea><br>
<textarea name="output" cols="80" rows="10"><?php
if (isset($_POST['input'])) {
echo htmlspecialchars(
@VaclavSir
VaclavSir / EntityFormBuilder.php
Created February 14, 2013 11:50
EntityFormBuilder
<?php
namespace VS\UI;
/**
* Simple form generator for plain old data objects.
*
* Creates a field for each scalar setter. Nothing more.
*
* @author Václav Šír
<?php
/**
* Homepage presenter.
*/
class HomepagePresenter extends BasePresenter
{
private $a, $b, $c;
@VaclavSir
VaclavSir / preg_match.php
Last active October 6, 2015 06:38
PHP PCRE Tester
<?php
header('content-type: text/html; charset=utf-8');
$pattern = isset($_POST['pattern']) ? $_POST['pattern'] : '~^$~';
$subject = isset($_POST['subject']) ? $_POST['subject']: '';
?>
<h1>Preg_match tester</h1>
<form method="post">