<pedrocorreia.net ⁄>
 

<PHP-Contracts: a design by contract library for PHP 5 ⁄ >




clicks: 3124 3124 2011-09-14 2011-09-14 goto programacao myNews programacao  Bookmark This Bookmark This


Noticing that PHP 5 is adding more higher-level functionality such as closures and knowing that it's a relatively unsafe language to work, I began to think of ways to improve the safety and security of PHP code. One way to do this is to use Design By Contract and I've created a new project as part of Higher Order PHP for that: PHP-Contracts. The library is licensed under the GNU Lesser General Public License so that you can use it as part of proprietary PHP 5 projects.

Contracts state what preconditions, postconditions and invariants exist for classes and methods. For example, a method that returns the result of adding two positive numbers together will have two preconditions (both parameters must be positive numbers), and one postcondition (the result must be a positive number) Contracts help us define what exactly a function should do and they make it difficult for us to add any code that shouldn't be there. It is true that PHP has added type-hints, but those don't go far enough.



este é só um excerto do artigo, para aceder ao artigo completo, clique no link em baixo:
this is just a small excerpt from the article, to access the full article please click in the link below:

http://neverfriday.com/?q=project/higher-order-php/php-contracts




Subscribe News RSS  Subscribe News Updates by E-mail





myNews <myNews show="rand" cat="programacao" ⁄>

RouterJs: easy routing for your ajax Web applications new ...

RouterJs is a simple router for your ajax web apps. It's build upon History.js which means that Rout (...)

clicks: 17311 17311 2012-05-14 2012-05-14 goto url (new window) haithembelhaj.g... goto myNews programacao


Backbone computed properties new ...

This gist shows one way to implement read- and write-enabled computed properties on a Backbone Model (...)

clicks: 17094 17094 2012-05-13 2012-05-13 goto url (new window) https://gist.gi... goto myNews programacao


Create Instagram Filters With PHP new ...

In this tutorial, I'll demonstrate how to create vintage (just like Instagram does) photos with PHP (...)

clicks: 16980 16980 2012-05-12 2012-05-12 goto url (new window) net.tutsplus.co... goto myNews programacao


Android Query new ...

Android-Query (AQuery) is a light-weight library for doing asynchronous tasks and manipulating UI el (...)

clicks: 17215 17215 2012-05-12 2012-05-12 goto url (new window) code.google.com... goto myNews programacao


HTML5 jQuery Paint Plugin new ...

Websanova Paint is a HTML5 canvas based jQuery plugin. It allows you to free paint on a canvas area (...)

clicks: 28064 28064 2012-05-12 2012-05-12 goto url (new window) websanova.com/t... goto myNews programacao


Real-time Applications With Node.js and Socket.IO new ...

Hey everyone! Sorry about the long pause since the last blog post, life has been quite hectic for th (...)

clicks: 17348 17348 2012-05-11 2012-05-11 goto url (new window) codingcookies.c... goto myNews programacao


Sass vs. LESS vs. Stylus: Preprocessor Shootout new ...

CSS3 preprocessors are languages written for the sole purpose of adding cool, inventive features to (...)

clicks: 16688 16688 2012-05-11 2012-05-11 goto url (new window) net.tutsplus.co... goto myNews programacao


Gettings to know Backbone.ks new ...

In this series, we're going to learn how to build a fully functional contacts manager using Backbone (...)

clicks: 16026 16026 2012-05-10 2012-05-10 goto url (new window) net.tutsplus.co... goto myNews programacao