Core PHP Programming
The authors of Core PHP Programming have found a marvelous middle ground. Toward the beginning of the book they have a great deal of light, explanatory material as they cover the basics of PHP. As they move towards more advanced topics there is less explanation and a tighter packing of information. At the same time the book has a large number of small code examples throughout, making sure that you know how to use the functions under discussion.
This is the third edition and I must admit that I had not come across it in either the first or second editions, so I have no great way of comparing them in this review. It has certainly been revised to take into account the changes for PHP 5 and examining the table of contents for the second edition on Safari I can see the that the basic structure has remained the same while the book has grown about 300 pages. The addition of Zeev Suraski as co-author can only be to the benefit of the quality of the information, particularly regarding PHP 5.
The book starts with the absolute rock bottom of PHP, the basic data types and operators through to efficiency, debugging and design patterns. Along the way it covers almost all aspects of PHP 5 with a readable reference style. The 'Core' in the title of this book is a key to understanding it. If you're looking for a book with all the code required to handle session management, or user logins and security (to mention two possibilities) then this isn't the book for you. If, however, you are after a book that more than adequately explains the power and nuances of PHP and programming in the language then this is a marvelous volume.
It's broken up into 5 sections: "Programming PHP," which covers the basics of data, control flow and I/O; "Functional Reference," which is 600 odd pages broken up into 12 chapters that seems to cover every PHP function (a check of three sub chapters showed every function mentioned on the topic at PHP.net was also in the book) and does it well with good explanation and code examples; "Algorithms," which details a number of methods of performing routine tasks such as sorting, parsing and generating graphics; and "Software Engineering," devoted to design, efficiency and design patterns; and finally, there are a seven excellent appendices.
Taken as a whole it does a good job of covering the whole language and the ways of using it.
I can imagine it would make a good companion volume to my other favourite PHP volume, PHP and MySQL Web Development, which tends more towards recipes and leaves out the encyclopedic coverage of this book.
Leon Atkinson has a good page for the book that includes a link to download all the code and examples, a link to the Prentice Hall page for those wanting an example chapter or a look at the Table of Contents and some other reviews. His site also has a page for the inevitable errata, currently blank. While I did find only one typo (not in example code) I can't claim to have read every page or run all the code examples.
I'd recommend this volume to anyone who wanted a comprehensive guide to PHP 5. It is probably useful at almost all levels.
You can purchase Core PHP Programming, 3rd Ed. from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
Does one really need a 1000 page reference on PHP? The online documentation is free, downloadable, and quite complete.
TODO: Something witty here...
I always print out the manuals, faqs and howtos I read frequently. I also print out important e-mails.
The owls are not what they seem
No, I'm not selling, but here is a link at O'Reilly's website.
If you know PHP to a certain degree, this book is very useful, and presents real world examples. It is very up to date, and even covers things like PHP OOP and PEAR.
libertarianswag.com
I was very excited to get a book that covers PHP5. However, since PHP5 is still changing the book leaves a lot to be desired. There is no information at all on SimpleXML, which will probably be the prefered XML handler once PHP5 is released. When I bought the book I was expecting it to be one of those books that gets worn out from use. However, I haven't touched it in over a month (and I probably bought it 6 weeks ago). I would wait to buy books on PHP5 until PHP5 is out. -Jackson
There's a lot of people who say 'you don't need a book, the online docs are great!'. I disagree.
*Some* books are good (although I think there are too many which repeat the same information, not enough focus on particular topics in the PHP world) and necessary because they can go into greater detail than you get from the online docs.
"What about online tutorials?" Some are good, but having it all in one book, written by only one or two authors (as opposed to wrox-style 15 authors) can help keep a consistent presentation of concepts from beginning to end.
I'm not saying online sucks and all books are great - many PHP books aren't all much more useful than the online docs really. But for those that try to actually teach, rather than reprocess, I think they can be more valuable over time than *just* the online docs.
Personally, I think this 3rd edition is good, although there is, imo, too much reprocessing of the manual. You could cut 200-300 pages out of this book and not miss much of anything. What would be left is worthwhile, though. What's missing in all the reference material is details on what, if any, differences there are between PHP4 and PHP5. If it's there it's in text form, not a standard icon set to alert you of potential differences.
BTW, I have roughly the same arguments for PHP training courses, which we teach (subtle plug). "It's all online!" isn't the best answer for everyone. Many people struggle for hours or days with some concepts with only tutorials and reference pages. Put them in a classroom where they can get immediate feedback on new concepts, and they get it much quicker. Each person learns and adapts to new information in different ways, and classroom training is appropriate for some people, whether it's "only" PHP or something else.
creation science book
I've had this book for awhile, and I do agree that it is on the whole a nice book -- being in its third reprint one has to expect that. However, the book doesn't really cover PHP 5 at all. None of the new extensions such as simplexml, sqlite are discussed (just the Zend Engine 2 stuff). On top of that, the ZE2 stuff is even outdated as it talks about things like Namespaces which were removed from PHP 5.
Although ive not done too much with it, PHP seems to be fast becomming the de-facto standard for young programmers getting into true dynamic web development on the server.
.net".
Personally I feel that J2EE and JSP is a more 'enterprise' technology for this kind of development with large transactional systems but the nature of PHP tends to lend itself more to the lightweight, free web development and is supported by a growing number of hosting companies (even free hosting companies).
I do question the need for yet another book on the subject, but i prefer to see up to date copies of books such as this hitting the shelves than "1001 ways to do everything you need with
Kudos to the PHP team.
yes, but....
2 1337 4 u!
You mean there isn't a page like this one?
http://php.net/quickref.php
I gotta agree with the poster above.. O'Reilly's PHP Cookbook is an excellent way to sharpen your PHP skills.
.ini, and then make adjustments in the httpd.conf for each customer. I.e., just let them open files in their own directories. And the OO is simple but effective enough for clear maintainable code. Throw in a PHP accellerator and you've got a great environment.
I've recently gotten back into using PHP for medium-size sites, after a brief period of hating it. I hated the security problems, the "fake" OO, the arbitrary stuff like magic quotes, the procedural functions. However, I've changed my opinion a bit: in security, you can have the PHP engine OFF and very tight in the
PEAR (object-oriented extension library) is pretty cool. If you've never used it, try it out: "wget -O- http://go-pear.org/ | php -q".
And PHP5 looks great, I love the fact that it has exceptions, interfaces, and type hints, that will pretty much kill Java on the medium/small end of the scale. So I decided to start using PHP again.
Anyway, the only good book I've seen is the O'Reilly Cookbook. They totally missed the PHP bandwagon but they redeem themselves with this one. It's clearly written, very thorough, and includes recipes of all levels. I learned a lot about PHP just by reading through the recipes. They usually present one clear way to do everything, plus make some useful discussion on performance and security when appropriate. The authors cleary understand PHP deeply.
And the book is pragmatic, unpretentious, and clearly designed to help you get your work done, rather than present a list of "my language is cooler than yours" tricks. Unlike certain others *cough* Python cookbook *cough*. (Granted, that's also a property of PHP itself).
So if you've got the basics of PHP (which you can glean from the PHP web site or from studying other people's code), try the O'Reilly book. It's probably the only one you'll need until PHP5 comes out.
I'd suggest taking a look at this page:
http://www.php.net/mirroring.php
I've set up a mirror for internal use at work. Just run rsync in a cron job every week or month or whatever to keep things up to date.
J
Four words. O'Reilly Pocket PHP Reference. This sounds like your kind of book then. It comes in terribly handy, it has a place right next to my Obj-C pocket reference.
I hate sigs.
"Who are in control, they are not in control of anything - they don't even control themselves!" - Glen Beck
I pretty much started out my programming career on the hot-off-the-press Core PHP book. The online documentation is good as a reference, but for someone getting started Core PHP is well balanced enough so the reader doesn't get crushed by details.
Wore my book out...
"One of my key concerns when reviewing a good book is the pull between information density and a light, easily read style. I believe that as we get further along the learning curve we can sacrifice some readability for density -- we want more facts and less explanation."
You've just described some of the basics of good technical writing. The basic theory of writing good technical documentation is identifying your audience and writing so not only does the document answer the audience's questions and provide usefully comprehensible information, but also refers the more literate and technical readers to more detailed sources.
Anyone aspiring to be a writer - either professional or just notating code - should take a few technical writing classes. There's an industry that's refined the process of technical writing and there's no sense to reinvent the printing press - so to speak.
- Dan
{
printf("Jorkapp is a programmer");
main();
}
Jorkapp is a programmer who does not know that this will eventually core dump because it will fill the stack.
Slashdot Sig. version 0.1alpha. Use at your own risk.
But every version has added on more features. Now instead of a smooth and light templating language, people are now writing templating languages to be parsed by PHP. Gahh! The proper response to all the trolls that insult PHP by saying that it isn't a real language is not "Wait until version 5! It supports class introspection!" Instead, the PHP community should have said that PHP wasn't meant to be a "real" language.
Now that PHP requires a 1000-page book, why should it exist? Why not use Perl, or Python, or C?
I will say that the PHP community is a very friendly and helpful group of people. Perhaps that is because so many PHP developers were previously graphic designers, and so they still remember how daunting programming can be to learn.
--
Long-term effects of Bush deficits
'I can't claim to have read every page or run all the code examples'
Well I didn't read the article. But seriously though, what kind of review can you expect from a reviewer who can't be bothered to read the whole book?
Not much wrong with PHP. That wasn't my point. It's just every jackass who copies the function reference guide for [language of the week] then tacks on 400 pages of "this is what an if statement is" does not a good book make.
If you want to learn comp.sci there are better books then some jackass reference manual for a programing language.
In reality you could put the PHP grammar on a few pages or so [the C one takes like 4-5 pages in the K&R book] then proceed to show off examples of PHP being used for practical purposes [e.g. accessing mysql, accepting files, etc, etc].
Tom
Someday, I'll have a real sig.
It covers everything in the PHP5 spec up to about a month and a half ago I think. Had to have a peek inside though, because the cover says it covers 4.x, which is clearly a misprint because it's got all the new OO stuff, SQL Lite and simpleXML stuff in there.
on amazon.
1) I loved the objected oriented aspects, but was disheartened to learn most of that code only applies to the latest PHP, which isn't deployed in most ISPs.
2) The index is terrible. Thank God the online docs are good. I've rarely been able to use the book as a reference.
3) I'm probably being dense, but I had trouble finding the sample code online. I expected it on Prentice Hall's website or at least an obvious link. (It's on the author's site)
I'm whining, but I really did like this book and would still recommend it.
bs. a new programmer should have to worry about everything that is going to affect the readability of his code in the future when he's an advanced programmer.
it's hard, very hard to break the bad habits instilled in "new" programmers. get em while they're young. that's why i like the fact that python *forces* good form and whitespace. just the notion that it won't work if it's not properly formatted will carry over to other languages when someone moves on to another language, and good style will as well.
understanding the difference between tabs and spaces isn't something too hard for anyone attempting to learn a programming language to tackle.
the parent is gonna get un-modded for this, but i just had to say something...
PHP seems to attract everybody under the sun--including horrible, horrible programmers. I've had to maintain PHP written by someone else before, and it wasn't pretty. Far from being pretty, it was some of the ugliest code I've ever seen. And when I looked for help on forums with certain problems I ran into, the responses I received were oftentimes truly amateur hackery.
That's probably why PHP has a bad name. That and magic quotes.
The problem is number 3. If the documentation is so complete why are the user comments needed? There have been plenty of times I've seen things in user comments that should have been in the actual documentation. That doesn't seem very complete to me.
The Anti-Blog
Also, when you want the lowdown on a function, it's super easy to just enter
www.php.net/functionname
into your browser, and you're forwarded straight to the functions documentation, and usually also the local mirror. Sweet stuff.
I actually reviewed this book for PHP Magazine [www.php-mag.net] in October.
c pp.html
It's supposed to be published in one of the next few issues.
This book is terrible -- If I were to give it a slashdot review rating -- it would be *3* and that is being generous.
Below is the hyperlink to my review:
http://www.wizardtechnologies.net/reviews/phpmag-
------------------------------
Ray Raspberry
raspberry@b3l33t.org
There are also, like any real world programming language, many ways to approach the same problem.
Sometimes there are BAD ways (a function might exist to do something simple and quickly and shouldn't be used as part of a more complex solution)
The online docs don't answer the questions like: .ini files?
What's the best way to read in an apps config file and perhaps even write it back out?
How can I write a random cookie to someone and use that value as a lookup into a database of current state and other information (and expire said info for out-of-date sessions)?
Can I easily use XML for configs rather than
Books can show best practices, hazards in using certain functions, how some suites of functions best interact with other uses, etc. A book may also elide certain functions that are older and perhaps better replicated in newer functions - code waiting to die (once that PHP2 stuff gets redone).
This sort of thing has no place in documentation for a list of functions.
We could call is "user manual" vs. "reference manual". Online docs for PHP are a great reference manual.