Sitepoint has a series of articles on the subject, the first can be found
here
jdtoronto | [reply] |
The "check syntax" appears to be the -l (lowercase L for Lint) flag. I don't know if there's any such thing as -w, although you might find something on this page. Does PHP even have warnings the way Perl does? It's not that type of language, I don't think. I see "warnings" from PHP pages all the time on the web, when they've failed completely.
($_='kkvvttuu bbooppuuiiffss qqffssmm iibbddllffss')
=~y~b-v~a-z~s; print
| [reply] |
I see "warnings" from PHP pages all the time on the web, when they've failed completely.
those warnings can be disabled when running PHP code in production, but people are often unaware of the (possible) security risks that those warnings reveal... or they just don't care - so they don't disable them :( i guess the reason they're enabled by default is that PHP tries to be userfriendly.
...but what do i know?! i started playing with PHP 2 weeks ago. the similarities with Perl made it easy for me to learn and start using...
:)))))
| [reply] |
To achieve what you want, you need to do a few things.
First, warnings. There are several ways to affect this. The INI key you're
looking for is error_reporting, and you want it set to E_ALL (or, in PHP5, E_ALL
| E_STRICT). You can do this by:
- In your php.ini file, "error_reporting = E_ALL | E_STRICT"
- In your php file, add the line "error_reporting(E_ALL | E_STRICT)"
- Alternatively, create a file that does the above option, and set the INI
setting 'auto_prepend_file = ...' to this location
You still then have to tell PHP to actually display the errors. In development
environments, you'll usually have this turned on, but should turn it off in
production environments. Again, you need to affect an INI setting, this time
'display_errors":
- In your php.ini file, "display_errors = On"
- In your php file, add the line "ini_set('display_errors', true);"
- Again, as above, add the above line to an auto_prepend_file
The final part of your request is how to execute and/or test a file from the
command line. The simple answer: "php script.php" will do so. If you want to
test for well-formedness, add the -l switch (lint): "php -l script.php". You can
also simply parse the file, which will catch some errors that linting won't:
"php -f script.php".
Finally, "php --help" gives you the above options, and more. As to the INI
settings, look in the provided php.ini files, as they are very well commented.
Update: You can also pass INI settings via the CLI option '-d'. If you want E_ALL (2047) and E_STRICT (2048), and to display errors, try the following: php -d "error_reporting=4095" -d "display-errors=On" myscript.php. | [reply] |