Get Homebrew installed on your mac if you don't already have it
Install highlight. "brew install highlight". (This brings down Lua and Boost as well)
Get Homebrew installed on your mac if you don't already have it
Install highlight. "brew install highlight". (This brings down Lua and Boost as well)
This article has been given a more permanent home on my blog. Also, since it was first written, the development of the Promises/A+ specification has made the original emphasis on Promises/A seem somewhat outdated.
Promises are a software abstraction that makes working with asynchronous operations much more pleasant. In the most basic definition, your code will move from continuation-passing style:
getTweetsFor("domenic", function (err, results) {
// the rest of your code goes here.
Related blog post: dpb587.me/blog/2013/01/14/terminating-gearman-workers-in-php.html
MIT License (http://opensource.org/licenses/mit-license.php)
Requisitos | |
- Conhecimentos avançados em PHP e Orientação a Objetos | |
- Conhecimentos em algum framework como Zend Framework, Zend Framework 2 ou Symfony | |
- Interesse e facilidade em aprender novas tecnologias, linguagens de programação e ambientes de desenvolvimento | |
- Banco de dados como MySQL e PostgreSQL | |
- Inglês técnico, pelo menos para leitura | |
Requisitos adicionais | |
- HTML5, CSS3, Javascript (jQuery), Web standards | |
- Gostar de rock n’ roll! |
Object Calisthenics outlines 9 basic rules to apply when performing the exercise:
Quando falamos sobre design em orientação a objetos, estamos basicamente falando sobre responsabilidade e relacionamento. Com responsabilidade quero dizer algo que alguma coisa faz e com relacionamento quero dizer como alguma coisa utiliza aquilo que outra coisa faz. O Design de Software Orientado a Objetos trata especificamente da forma com que os objetos se relacionam, ou seja, como expor a responsabilidade dos objetos de forma que outros objetos possam se relacionar.
Do ponto de vista do Design de Software Orientado a Objetos, não importa, exatamente, como alguma coisa é feita. Pelo contrário, o objetivo é justamente evitar esse conhecimento sobre a implementação, encapsulando o que é específico para permitir que trabalhemos com a definição conceitual daquilo que precisamos utilizar. Por exemplo, é comum uma aplicação precisar trabalhar com um SGBD. Se nossos objetos tiverem conhecimento específico de que estamos, na verdade, trabalhando com MySQL, e
You may not know that [the most awesome validation engine for PHP][1] out there is [Respect/Validation][2]. If you do, this is tailored for you!
All rules on [Respect/Validation][2] are meant to be used together, composing a more complex validation rule that is closer to the domain of your application than the existing ones, let's try an example:
<?php | |
class PosixErrorCode | |
{ | |
const EPERM = 1; /* Operation not permitted */ | |
const ENOENT = 2; /* No such file or directory */ | |
const ESRCH = 3; /* No such process */ | |
const EINTR = 4; /* Interrupted system call */ | |
const EIO = 5; /* Input/output error */ | |
const ENXIO = 6; /* Device not configured */ |