Home/
 www.icosaedro.it 

 PHPLint

Current version: 1.1_20120202

PHPLint 1.1 is out!

Main news are: support for the prefixed array type notation T[]; require_once now requires an absolute path to resolve ambiguity that might arise; a richer PHPLint Standard Library provides support for array sorting, hash sets, hash maps, SQL driver abstraction and other utilities and comes with a fully documented API in HTML format; several fixes, mainly related to class autoloading (more...).




PHPLint is a validator and documentator for PHP 4 and PHP 5 programs. PHPLint extends the PHP language through transparent meta-code that can drive the parser to a even more strict check of the source. PHPLint is not simply a checker: it implements a new, strong typed, language implemented over the PHP language. You can build your programs from scratch with PHPLint in mind, or you can check and fix existing programs, or you can follow the quick-and-dirty PHP programming way and then add the PHPLint meta-code later once the program is finished. Whatever is the strategy you choose, PHPLint makes your programs safer, more secure, well documented and with drastically less bugs.

Resources and documentation

Documentation:
Features
Tutorial
Reference Manual
Support for phpDocumentor
Documentator Reference Manual
FAQ (Frequently Asked Questions)
License
Libraries
Browse all the PHP modules and the PHPLint standard library of packages. Source and documentation are available along with the PHPLint distributed package.
PHPLint on-line
The WEB version of PHPLint. Here you can test simpler programs that do not require the inclusion of external sources. Some examples are also available.
Bugs, missing features and to-do list
Latest changes
Detailed description of the additions, corrections and changes to the latest released version of the program.
Download the program
PHPLint is available as a stand-alone program you can execute on your computer. This is the preferred way to use PHPLint since it is faster and it allows to parse recursively the included packages and complete applications.
Using TextPad with PHPLint
How to configure the TextPad text editor to work with PHPLint obtaining a simple but effective development tool.

Umberto Salsi

Contact
Site map
Home/

An abstract of the last comments from the visitors of this page follows. Please, use the Comments link above to read all the messages or to send your contribute.

2011-05-18 by Anonymous
Re: DateTimeZone::listIdentifiers Permits an Argument
Umberto Salsi wrote: [...] (PLEASE ADD YOUR COMMENTS HERE) Works perfectly! Thanks for the speedy response.

2011-05-17 by Umberto Salsi
Re: DateTimeZone::listIdentifiers Permits an Argument
Anonymous wrote: [...] The problem is due to the incomplete declaration of the prototype of the method in the 'standard' module. You can download the updated module from the CVS that fix this problem: http://cvs.icosaedro.it:8080/viewvc/*checkout*/public/phplint/modules/standard

2011-05-17 by Anonymous
DateTimeZone::listIdentifiers Permits an Argument
PHPLint handles this line with no problems: $lines = DateTimeZone::listIdentifiers(); However, when I add a permitted argument: $lines = DateTimeZone::listIdentifiers(DateTimeZone::ALL_WITH_BC); PHPLint flags that line: ERROR: `DateTimeZone::listIdentifiers()' declared in /home/owen/phplint/modules/standard:1175: too many arguments ERROR: constant `DateTimeZone::ALL_WITH_BC' does not exist In [...]

2010-07-06 by Umberto Salsi
Re: Simplexml
Anonymous wrote: [...] The problem are the dynamically created properties, that are not supported by PHPLint (and never will be). Instead you can try to convert the $xml object into an array with $a = get_object_vars($xml); which returns a generic associative array of mixed values. This adds a little overhead due to unnecessary (for PHP) creation of another array that duplicates data that are [...]

2010-07-05 by Anonymous
Simplexml
Nice product! I have successfully run all my scripts through phplint, except for the following. I execute a web service, then process the output: $xml = simplexml_load_file(whatever); $answer = $xml->Result->Answer; That second line results in 2 messages: ERROR: property `SimpleXMLElement::$Result' does not exist or not visible Warning: `->' operator applied to a value of type unknown The script [...]

2010-05-18 by Anonymous
Ignoring certain code
Hi, First, congratulations on PHPLint. I love static code checkers, they make the developer's life much easier! Is it possible (perhaps by means of specially formatted comments) to ignore certain parts of a document, for example for machine generated code or something like that? //G

(...)