Slashdot Mirror


Two Books On Programming With PHP

A few years ago, knowing just a few html tags and tricks could probably have gotten you a job as a full-fledged Web designer, or at least Web coder. As things get more complicated and Web sites more dynamic, the tools you need to create that all-singing, all-dancing user-interactive content have gotten more complex than carets and single letter tags. Danny Yee wrote these reviews of two of the many available books on PHP programming; to see Danny's hundreds of other reviews, check out the links provided at the bottom.

Web Application Development with PHP 4.0; The PHP Pocket Refere author see each pages see publisher see each rating 8;6 reviewer Danny Yee ISBN see each summary Both of these books are intended to serve as references for PHP programmers, but take different approaches in doing to.

Web Application Development with PHP 4.0 is a book one can actually read: it contains no undigestible slabs of reference material or code (these are relegated to the accompanying CD). Coverage of a wide range of largely independent topics also makes it a great volume for browsing in. And as a system administrator who does only a little bit of programming, in a variety of languages, I appreciated its "broad overview" approach.

The opening chapter of Web Application Development is a very brief look at some general programming issues - code formatting, documentation, APIs - that are all too rarely mentioned in programming language books. The second chapter covers PHP "advanced syntax": lists and arrays, object-oriented programming, and a bit on polymorphism and self-modifying code. (I finally got a handle on PHP's slightly odd handling of lists from this.) And chapter three presents a development example, coding an IRC interface in PHP.

Chapters four through seven cover a large selection of topics: sessions and session-handling, security, usability, validating form data, CVS, COM and Java interfaces, database integration, authentication, templates, XML, and WDDX. Much of this is not at all PHP-specific. Of the thirty-two pages on XML, for example, the first twelve are a general introduction that is not at all language-specific (the remainder describe how to use the Expat and LibXML parsers built into PHP, with examples). And the material on CVS presents some PHP scripts for automating notifications, but is otherwise completely generic.

I found the last two chapters less interesting. Chapter eight contains three case studies of organisations using PHP, but these are more sales pitch than substance (I really don't think it makes sense to be "marketing" PHP three hundred pages into a book on the language). The final chapter of Web Application Development is about modifying the C code at PHP's core. I skipped quickly over this and suspect the vast majority of readers will do the same.

Title; Authors Web Application Development with PHP 4.0; Tobias Ratschiller, Till Gerken Publisher, ISBN New Riders, 0-7357-0997-1 Other 384 pages, includes CD

(Order Web Application Development with PHP 4.0 from Fatbrain.)

The PHP Pocket Reference is right at the other end of the readable/reference continuum. It has two tiny discursive examples (of form handling and database integration) but otherwise is pretty solid: thirty pages introducing PHP syntax are followed by eighty pages of function prototypes with one sentence descriptions. And yes, it will fit into a (large) pocket. I have used the Pocket Reference occasionally, but I suspect only because it has been sitting next to my computer while I write this review -- once it goes onto more distant shelves, using the online documentation will probably be faster.

Title; Authors The PHP Pocket Reference; Rasmus Lerdorf Publisher, ISBN O'Reilly & Associates, 1-56592-769-9 Other 114 pages

(Order The PHP Pocket Reference from Fatbrain.)

Danny Yee's Book Reviews
Home | Subjects | Titles | Authors | Publishers | Latest A book review by Danny Yee <editor@dannyreviews.com>, Copyright © 2000

50 of 145 comments (clear)

  1. Why buy a book on PHP? by Anonymous Coward · · Score: 2

    I was evaluating middleware trying to figure out what direction I wanted to take and came to the conclusion that PHP was the best alternative for me. People will argue on and on about what they perceive to be the best technology to get the job done. In the end it comes down to getting the job done and feeling comfortable with the tools you use to achieve that goal.

    I live in the thick of things so there's the ubiquitous B&N jam packed to the gills with two-inch thick books on almost any language/software you can think of. I picked up two books on the subject: PHP Programming (Wrox) and the PHP Pocket Reference (O'Reilly).

    Why did I pick up these two books?

    The Wrox book:
    The five geeks on the cover of the Wrox book was a real attention getter. The fact that it didn't come with a CD was another deciding factor. I am just plain sick of books with CD's these days. Mainly I bought it because I ripped it open and read the TOC and it looked like the better of the three two-inch thick $50 books I was looking at. Later I have come to find, after reading a ton of reviews, that it was a good choice.

    The O'Reilly book:
    What? like I'm not going to buy a book written buy the guy?

    The only gripe I have is that it's not a two-inch thick $50 book with CD!!! ;^)

    It fit's nicely in my back pocket, thank you very much, and has replaced my much tattered and well read copy of "The Catcher in the Rye"

    You will always find the most current information on-line, but you'll have to look for it. Having the information in book form means it's all in one place and doesn't require fresh batteries.

  2. learning php by CLorox · · Score: 2
    I have found that for me, some of the best resources for figuring out php lie at php.net's own site. The samples provided by many of the php users worldwide have proven more than helpful and helped me code my first complex app in one day. I suggest that if you care to learn it, you may want to look at the site and try it out before you sink another $35 on a book you may only use for reference once every 6 months. If your not picking it up quickly then by all means hop on down to the nearest Borders.

    Searchable websites seem to be a little quicker than the index.

  3. What about session management? by dangermouse · · Score: 2

    I have yet to find a book that really gets into session management. At least one that I've seen does mention that such a thing exists in PHP4, but that's about it. I'm interested in seeing techniques used for handling logins, etc., and in seeing samples and examples of session management in use.

    Everything else I've needed to know, the php.net manual has told me.

  4. Re:The Advances of PHP Documentation by YogSothoth · · Score: 2

    ack, I mean of course 'error_reporting' not 'error_handling'. Ah well, since I'm responding to my own post here's some more sample code:

    <?
    error_reporting(E_ALL);
    $var = "foo";

    print($vra . "<BR>\n");
    ?>
    Without the error_reporting(E_ALL) you get nothing but with it you get:

    Undefined variable: vra in /home/jdumas/public_html/test.php on line 5.

    Just what your looking for eh? Also, php4 has a (largely undocumented as far as I can tell) 'assert' function that is a big win, you can do stuff like this:

    <?
    function expectsAnEvenNumber($theNumber)
    {
    assert('$theNumber % 2 == 0');
    print("The number: $theNumber<BR>\n");
    }

    expectsAnEvenNumber(3);
    ?>
    Which outputs:

    Warning: Assertion "$theNumber % 2 == 0" failed in /home/jdumas/public_html/test.php on line 4

    --
    there are two kinds of people in this world - those who divide people into two groups and those who don't
  5. Mee Too! by crisco · · Score: 2
    I've benefitted greatly from this book also. I've since recognized some of the authors posting articles and information to the various PHP tutorial sites, indicating that they are aware and involved in the community surrounding PHP.

    Table of Contents

    I. Introduction 1. About this book 2. Downloading, installing and configuring 3. Programming in a Web Environment II. The Language 4. Variable and data types. 5. Operators 6. Expressions and statements 7. Functions 8. Arrays 9. Objects and OOP 10. String manipulation and regular expressions III. Advanced PHP 11. Non-relational databases 12. SQL DBMS engines 13. Using LDAP 14. Serving XML documents 15. Graphic content creation 16. PHP connectivity 17. Sending E-mail 18. Cookies 19. Error handling and debugging 20. Security issues 21. Magic with quotes 22. Templates IV. Sample Applications 23. A shopping cart application (Databases, ookies) 24. Phorum Case Study (Security) 25. E-mail Case Study (E-mail) 26. Metalloprotein Case Study (Databases) VI. Appendix PHP4/Zend Function Reference

    As you can see, this book predated PHP4/Zend, but the material still very much applies. PHP4 didn't change the core language very much at all and goodies like the Zend compiler only extend the capabilities, not really change them.

    I wondered for a while "why buy a book when there is so much good stuff on the web". Aside from the obvious, like being able to read while sitting on the porcelain throne and having a dead tree reference handy at the computer, having a well written book like this gives you most of the matierial you need in one spot. It cuts down on rummaging through your bookmarks, going from one PHP site to the next searching for that article you read two months ago.

    So, if you get the chance, go down to the local bookstore and peruse all these books and take a look to see which might be most useful to you. The first one mentioned in the review (Web Application Development with PHP 4.0) sounds pretty good, at least worth a look.

    --

    Bleh!

  6. Way Offtopic [was Re:Offtopic] by luge · · Score: 2

    karma cap? eh? My karma dropped from 70+ to 49 several weeks ago, and I never could get a response from Taco as to why... obviously, though, it's not a hard cap, if it can still stay at 120+. Anyone have details (or pointers to which &sid thread I can find more details in?)
    ~luge

    --

    IAAL,BIANLY

    1. Re:Way Offtopic [was Re:Offtopic] by luge · · Score: 2

      Heh. Whatever- I mean, not like I post all that often anymore, and 50 or 250 I still get a bonus, so even if you think of it as a "30% dropoff!" it's still not a big deal. Just really irritating never getting a response from the /. people when I said "WTF?" So, keeping this thread alive: Anyone? Anyone? Explanations? Thoughts? sid links?
      ~luge

      --

      IAAL,BIANLY

  7. Errata: Rasmus by Pac · · Score: 2

    Where it reads "Ramus", it should read "Rasmus".

    Since we are here, where it reads "more useful for Web programming in the Web" it shoud read "more useful for Web programming" or "more useful for programming in the Web", but not both. :)

  8. You will hardly lose points moderating up by Pac · · Score: 2

    "In fact, metamoderation encourages moderators to moderate conservatively since trying to champion an unpopular opinion is likely to lose you karma points in the metamoderation phase."

    I have never had this experience. I can't confirm this alone, but I think most people metamoderate the way I do: Give an "a priori" Fair to all positive moderation, pay attention to the comments moderated down to see if any prejudice/persecution/plain stupidity
    was the real reason behind the negative moderation.

    1. Re:You will hardly lose points moderating up by Pac · · Score: 3

      The moderation guidelines says clearly that moderators should be more concerned about moderating up than down. Also, I never said the opinions or moderations I metamod as fair were "restating of my own, sheeplike, beliefs". First, aside from a small tendency to flee when I see a wolf coming in my direction, most of my beliefs are hardly sheeplike. Second, I think I haven't made myself clear. I metamod ALL positive moderations as Fair. Never or almost never read the comments they refer to. So I don't have the faintest idea if they restate my beliefs (sheeplike or not). On the other hand, I look very carefully at the negative moderations. Many times I even open the comment thread, to understand both the comment and the moderation. I really believe that a false positive is better than a false negative (and a false positive tend to be corrected far more frequently than a false negative).

  9. You can always discuss it somewhere else by Pac · · Score: 2
  10. the moderation system is a failure by tuffy · · Score: 2
    I would also like to point out that improving slashdot is not just a matter of metamoderation and moderation, it is a matter of generating intelligent discussion through posting insightful/informative/whatever comments. If no-one sees these because your karma is negative, it detracts from slashdot. Obviously there is no easy answer to finding the right balance.

    You are correct. Unfortunately, the current system has done very little to improve the state of Slashdot discussion. In fact, I believe it has proven detrimental and needs nothing less than a complete overhaul - or be scrapped entirely.

    Take the anonymous trolls, for instance. Not only are they still present, but they have become such a nuisance that reading articles at level 0 or less is almost a waste of bandwidth. Anyone wanting to honestly submit an anonymous (or unpopular) opinion isn't going to be heard unless moderators intervene to raise it a few points. And downgrading troll posts has not deterred them in any way from making yet more posts - since the amount of posts a troll can make is basically infinite but a moderator only gets five points to work with at a time.

    Not only that, but moderators haven't improved discussion by moderating posts up, either. Part of the reason for this is that posts that are inflammatory or simply telling an unpopular opinion aren't going to be moderated to the same levels as another post that just parrots what most everyone else already believes. In fact, metamoderation encourages moderators to moderate conservatively since trying to champion an unpopular opinion is likely to lose you karma points in the metamoderation phase. The end result is no reward for going outside the Slashdot mainstream but plenty of grief.

    As it stands, Slashdot has degenerated into a sort of "karma game"/popularity contest that does little to further discussion into anything interesting but plenty to dumb the whole site down into a sort of love fest, which is something of a minor tragedy considering the potential.

    --

    Ita erat quando hic adveni.

  11. Re:Any advantage in PHP over mod_perl by Dr.Dubious+DDQ · · Score: 2
    Is there any advantage in playing around with PHP?

    This part I think I can safely say "yes" to. I've not played with mod_perl specifically, but having done some work with both PERL and PHP (caveat: I'm nowhere near an "expert" with either one!), PHP seems to have a better 'feel' (subjectively) working with web-interface stuff than PERL does, though it (PHP) seems fairly similar to PERL in style and syntax.

    Mind you, I'd definitely put myself in the "advanced beginner" ("Beginning intermediate?") category as a coder in PERL or PHP, so more experienced coders may have a different view.

    (On yet another hand - to any fellow amateurs reading these posts: PHP definitely seems less complex than PERL [which obviously means it's a bit more limited, too] but has a similar style, so it might make a good adjunct to PERL studies...)

    Any more experienced coders out there agree? Or am I nucking futs?


    Joe Sixpack is dead!
  12. Re:Any advantage in PHP over mod_perl by Hanno · · Score: 2

    When it comes to installing it, PHP beats mod_perl quite easily. Also, PHP is available on more platforms and most providers install it as default these days.

    (This by a guy who prefers mod_perl.)

    ------------------

    --

    ------------------
    You may like my a cappella music
  13. Re:PHP vs Mason by the+eric+conspiracy · · Score: 2

    The lack of flexible quoting in PHP was always a real annoyance to me.

  14. Re:PHP vs Mason by the+eric+conspiracy · · Score: 2

    Huh? In what way is PHP primative?

    Depends what you compare it to. PHP is a worthy competitor to Perl. But compared to JSP it's strictly stone knives.

  15. Re:PHP vs Mason by the+eric+conspiracy · · Score: 2

    but am coding my new software in PHP.

    Right now my job consists of maintenance and adding functional extensions to a PHP based e-commerce site. It is a fscking nightmare because every page is full of creaping crud from the last 6 revisions. PHP IS fast to bring up, but it is hell to maintain after the first couple of rounds of revisions. And of course there is NEVER time or money to do that rewrite to Java. My life as a web developer is living hell because of the inadaquacies of PHP - and it's going to get worse because the only other fellow who understands the site quit last week out of disgust.

    PHP is fine for a small e-brochure site with minimal dynamic content. For anything more it is the path to HELL.

  16. Re:The Advances of PHP Documentation by plunge · · Score: 2

    Uh, it is- under manual as "error," as well as being prominetly featured in the php config file.

  17. Re:Well, GOOD web sites still use just those few t by extrasolar · · Score: 2

    "And the best web sites are still the ones that stick with just the basic HTML tags..."

    Sad. HTML has some really nice semantic tags like <ACRONYM> and <ABBR> that even professional web designers never use.

  18. Re:Is this page by TheTomcat · · Score: 2

    A few years ago, knowing just a few html tags and tricks could probably have gotten you a job as a full-fledged Web designer, or at least Web coder.

    Ironic that the very page on which this appeared, the story author screwed up the HTML (-: Looks like someone forgot one, or closed one too many TABLEs, TRs or TDs, thus screwing up anything below the error. Don't you guys have a 'preview' for story submissions, before they go live? (-:

    Note: I'm not trying to troll here, just pointing out the irony.

  19. Offtopic by Fleet+Admiral+Ackbar · · Score: 2
    Has anyone else noticed that, in the metamoderation, you can gain karma by agreeing with some moderation, and lose by disagreeing?

    I metamodded the other day, saw something that I thought was extremely unfairly modded, and lost two karma points for it.

    Fug, I'll lose karma for this too, but in the end, who really cares?

    --
    Carefree highway, let me slip away on you.
  20. Replies by McSnickered · · Score: 2

    As a reply to several comments:

    1. Yes this page is rendering strangely.

    2. I haven't seen other O'Reilly books on PHP other than the pocket reference. However, the O'Reilly book MySQL/mSQL does devote some good chapters to PHP 3.0 & mod_perl.

    Book Warning: 'Php3 : Programming Browser-Based Applications' by Medinets is one of the least helpful books I have ever purchased. If you're interested in combining PHP & MySQL, I'd recommend getting both the Wrox book and MySQL/mSQL.

    --
    They call me the working man. I guess that's what I am.
  21. idea for book proposal by eries · · Score: 2

    I've been shopping around a book proposal to several publishers about a more narrative-style (and highly real-world based) book on PHP+MySQL based on m experiences with the Enzyme open-source project (http://enzyme.sourceforge.net). The proposal itself used to be available online at kuro5hin.org, but after the DDoS, it's no longer available. I'd be curious if anyone has ideas about this area, and if they'd like to take a look. Basically, I think most of these existing references on PHP are not that useful. I want to create something that will take a reader from zero db/php knowledge all the way up to creating a major app, using 100% real-world examples. And when I say zero knowledge, I don't mean a beginner - I just mean an advanced programmer who hasn't dabbled in web/db programming yet.

    What'ya think?

  22. Re:Any advantage in PHP over mod_perl by Bassthang · · Score: 2
    At the risk of starting a flame war, here goes:

    Advantages of Perl:

    • Perl can be used for tasks other than web scripts. Why learn a new language for every task?
    • Perl does OO fairly sensibly. Hence not all perl code has to be a tangled mess. Get Damian Conway's book on this.
    • Ease of code reusability. Modules. CPAN. Etc., etc.
    • Syntax. The PHP concept of a 'global' is just fubarred.
    • Integration with OS. PHP's idea of what 'system' and 'exec' should do is brain damaged.
    • Bodged REGEXP implementation
    • Perl can generate HTML, or you can embed it in phtml. Your choice.
    I could go on. It is certainly easier to get PHP working than mod_perl. But perl scripts can also be run as simple CGI's, not in mod_perl, so that isn't a huge hurdle. Hell, you can run your CGI scripts at the command line for testing them.

    I'll let someone else say why PHP is better ...

    (Is it just me, or does every site that uses PHP have rounded edges everywhere, just like php.net?)

    --
    "What I look forward to is continued immaturity followed by death."
  23. Re:Publishers who include CDs ... by Pfhreakaz0id · · Score: 2

    Two words: Wrox Press (www.wrox.com)
    ---

  24. I really like this PHP book by glanois · · Score: 2
    Professional PHP Programming from Wrox.

    Can anyone draw a comparison between the books Danny reviewed and this title?

  25. Re:Advantages to PHP over Perl? by chegosaurus · · Score: 2

    First off - my PERL is rubbish, but I've been using PHP since 2.0beta.

    Seems to me the speed of mod_perl and PHP is effectively equivalent. If you're doing a lot of hard work with a database then the bottleneck is never in the query or processing the data, it's in rendering a great big table in the user's browser.

    One may be faster than the other (my money is tentatively on PHP because it's so much more lightweight and written solely for the task) but I think any benefit is lost in either shoving the data down a wire to the client, or the client working with that data.

    I'm more comfortable with PHP, so I use it. It's as simple as that.

  26. Re:Any advantage in PHP over mod_perl by Metrol · · Score: 2

    date functions suck in PHP

    Dates work just peachy in PHP, you just haven't taken the time to learn how to convert them. I would highly recommend NOT storing Unix timestamps into your db, as then you aren't able to utilize SQL statements that can break out months, days, or years effectively. The following is a quick function I keep around for doing MySQL to PHP date conversion.

    // PHP and MySql store dates very differently. This routine converts
    // a MySql date format into a Unix timestamp so PHP can use this to
    // format in it's date functions
    function GetUnixDate($XDate) {
    $DateParts = explode("-", substr($XDate,0,10));
    $TimeParts = explode(":", substr($XDate,11,18));
    $UnixDate = mktime($TimeParts[0],$TimeParts[1],$TimeParts[2],$ DateParts[1],$DateParts[2],$DateParts[0] );
    return($UnixDate);
    }

    Limits your dates to 1970-2032

    Actually, the limit is 2038, and this is not a PHP related thing. Unix runs out of time on (I believe) Jan 18th, 2038.

    --
    The line must be drawn here. This far. No further.
  27. Re:Any advantage in PHP over mod_perl by Metrol · · Score: 2

    Is there any advantage in playing around with PHP?

    There is one over all aspect to PHP that sets it apart from pretty much every other programming language used on the web. It's the only one (that I am aware of) that was actually written specifically for the web. To either appreciate this or hate it you'd have to work with it for a while.

    --
    The line must be drawn here. This far. No further.
  28. Do you know PHP? by Grasshopper · · Score: 2


    Why yes, sir. It's pretty hard programming.

    Do I get the job?

    --
    Source code is a lot like a parachute; it needs to be open in order to function properly.
  29. My takes on these 2 books ... by Naum · · Score: 2

    ... I own both books - the pocket reference is nice but even at time of publishing it was out of date as it does not include many of the PHP 4.0 constructs/functions (i.e., array functions ...) ... what would have been cool is that if they took the appendix in WROX Professional PHP Programming and made it the "little reference" - as it is more complete and includes ver 4.0 updates ...

    In regards to the New Riders Web Application Programming - it is a decent read - like the story author here, I just scanned over the chapter (one of the more lengthy ones on "rolling" your own PHP in C ...) - some of my disappointments -, though, was the reference to source code for a knowledge repostiory application in one of the chapters - the accompaning CD had a source code directory, but no knowledge repository application like stated in said chapter - I even sent email to publisher via their little feedback box and I got a response that said see the *source* directory ... duh! it ain't there Wilbur ... another was that, imho, coverage of some essential intermediate-advanced topics was just "glossed" over, and nothing of real substance provided ...

    still, more content and substance than could be found in any Que or programming for retards book ...

    --

    AZspot
  30. Web Design Fragmentation by Phibian · · Score: 2

    "A few years ago, knowing just a few html tags and tricks could probably have gotten you a job as a full-fledged Web designer, or at least Web coder. As things get more complicated and Web sites more dynamic, the tools you need to create that all-singing, all-dancing user-interactive content have gotten more complex than carets and single letter tags"

    Has anyone else noticed that the field is becoming fragmented? Just as graphic design for the web is really starting to take off in colleges and universities, the scripting required to get a complex web site up and running is starting to resemble bonafide programming - and is beyond either the technical or interest comfort zone of many graphic design folks.

    And many content providers have long had nothing to do with the actual design but don't want anything more technical stuff like sticking it on the web site - be it adding to some database or actually modifying the HTML.

    More and more, I see web design having three parts to it - the content - the gui - and the programming to put it altogether.

    My experience has been that people with little HTML expertise (especially dynamic-type web stuff) still have no trouble finding jobs. Not everyone has to implement their web site ideas - there is room for pure design. Unfortunately, if you then have to work with someone without the ability to implement their ideas, some of those ideas are going to be real *fun* to implement...

  31. Re:O'Reilly by AbbyNormal · · Score: 2

    Yep...saw the O'Reilly after I posted. My bad.

    Hmm. That's a shame. I've come to trust O'Reilly as being very informative...the only book that they made that I DID NOT like at ALL, was their Curses library one. Boy did that NOT have any relevant information in it.

    --
    Sig it.
  32. Re:O'Reilly by ackthpt · · Score: 2

    Um... Try this link
    Gottum book, related books and some discussion links.

    When in doubt, just surf over to http://www.ora.com

    Vote Naked 2000

    --

    A feeling of having made the same mistake before: Deja Foobar
  33. Any advantage in PHP over mod_perl by ibot · · Score: 2
    I am already familiar with writing perl scripts and understand some of the nuances of mod_perl programming.

    Is there any advantage in playing around with PHP? Basically, are there certain situations where PHP is clearly superior to mod_perl/perl?

    Founder's Camp

    --

    Founder's Camp
    News for non-Nerds. Stuff that matters.

    1. Re:Any advantage in PHP over mod_perl by Rasmus · · Score: 3
      Just a couple of comments. There is no additional overhead involved when using Perl-style regular expressions in PHP. In fact, for most things they are actually marginally faster than POSIX-style regular expressions.

      I agree, the leak() function is cool:
      User: Wha! My script is leaking memory!?
      Dev Dude: Don't call the leak() function.
      User: Oh yeah, thanks.

      You can also include a module in PHP without recompiling. For example, let's say you install Apache, then install PHP (as either a static Apache module or as a DSO) and then you suddenly need to add MySQL support. You can go into your PHP source directory and do: ./configure --with-mysql=shared and it will make you a mysql.so file. This file can be loaded by an individual script using dl('mysql.so'); or it can be loaded globally by putting: extension=mysql.so in your php.ini file.

    2. Re:Any advantage in PHP over mod_perl by mcrbids · · Score: 3

      Dunno.

      Some time back, I figured I'd pick up Perl - it being the "standard" language - and immediately got lost. I tried two different books, as well as an online howto, and got NOWHERE.

      PHP, on the other hand, I picked up pretty much immediately with just the phpbuilder site and php.net. At the former site, people were very helpful and I was producing something meaningful (almost) immediately!

      I liked it so much I sold my business (computer shop) and now work as a Web developer. (Currently building a full-fledged auction site!) It's fun and rather straightforward.

      Couple of caveats:

      1) Mixing PHP and HTML sounds nice, (and is for tiny projects) but for any project of any size, you want to implement and use templates from PHPLIB or FastTemplate classes. Otherwise, you get overwhelmed trying to keep track of what it's supposed to look like and what tags and blah blah blah.

      2) For mid-to-large size projects, USE OOP!

      3) date functions suck in PHP. When saving a date
      in a database, don't bother with fancy date functions, as PHP uses 32 bit integer *nix epoch internally to calculate dates - just save the date as an integer and work from there. Limits your dates to 1970-2032, but it's at least consistent since you aren't going from Integer -> db date format -> integer -> final output, you are instead going Integer -> integer -> final output, and PHP can't handle dates outside this effectively anyway.

      4) Rather than write for particular database, (Postgres/MySQL) or even to ODBC (which can create driver headaches) write to a generic "db" class you write yourself - and then make that class manage the database. That way, porting to another platform is as easy as updating that single class.

      Not sure why I'm telling you all of this - but take it for what it's worth.

      -Ben

      --
      I have no problem with your religion until you decide it's reason to deprive others of the truth.
    3. Re:Any advantage in PHP over mod_perl by Rasmus · · Score: 5
      • PHP can be used for other than web scripts. But you are right, it is definitely geared at web stuff.
      • PHP's OO option has been improving steadily and I personally don't think it is all that bad. I never could figure out Perl's OO stuff.
      • We are working on that with PEAR. See the pear/ directory in the PHP 4 distribution.
      • global is fubarred. Yeah well, personal preference here I guess. I take full responsibility for this one. I had just gotten home from a 20-hour debug session with reams and reams of C code printed out on an old dot-matrix printer. The problem turned out to be a variable in a function that was meant to have local scope stepping all over a global variable. I swore I would never have this problem in PHP and implemented the "declare your globals" feature right then and there.
      • system("ls /some/dir"); The result is a listing of /some/dir in your web page. Seems pretty sensible to me. What's your beef on this one?
      • Bodged? PHP supports two styles of regular expressions. POSIX 1003.2 regular expression through Henry Spencer's regex library and also Perl-style regular expression through the PCRE library. You are saying these libraries are broken? I personally think Perl-style regular expressions are horrible. Try counting all the different ways the '?' character can be used sometime. I have counted 15 different meanings for '?' and I am sure there are more.
      • PHP can generate HTML or you can embed it. Your choice.
      And yes, you can run PHP scripts from the command line as well. It is as simple as: php script.php You can even stick the command-line PHP parser alongside perl in /usr/local/bin and write standalone PHP scripts that have #!/usr/local/bin/php on the first line. I am really not trying to convince anybody to dump Perl for PHP. If you know and love Perl, I suggest sticking with what you know.

      We have a bad habit in the open source community of beating up on each other. Linux and FreeBSD users fight, Emacs and vim users fight, Gnome and KDE users fight. Perl, PHP and Python users fight. When it comes down to it, these different open source systems are much more alike than they are different and we are not helping ourselves by being overly critical of each other. Constructive criticism and code sharing will ensure the technology advances. Infighting and destructive criticism will ensure that we will drag our old and grey beaten bodies to CompUSA to plop down $400 for an update to Windows-2005 and another $250 for that fix to C# that makes it stop eating all available RAM on a simple database query. -Rasmus

  34. Online Books? by SUWAIN · · Score: 2
    As much as I love computers... You can give me a free account to an "eBook", but I am still probably going to run out and buy the book. (Assuming I'm interested in the book in the first place...)

    Why? There are some advantages to a printed book that you just can't get online.

    First, you don't hurt your eyes by reading a book (unless you do something odd, liking trying to jam the book into your eyball).

    You can highlight, circle, scribble, etc. a physical page. This has unsploken advantages.

    A large heap of of books next to your desk is a way of showing knowledge. 20 100GB hard drives overflowing with data is a way of showing that you have a hard time managing data... (Okay, so I don't know anyone with 2TB of books.)

    By the way, all these books seem to be written for people who have had about 20 years of programming experience. I am fairly new to the programming world. Are there any good books that introduce PHP to someone who knowns practically nothing about what PHP is? I am interested in using PHP/MySQL on my site (still under development), but know nothing but a little HTML. (And shell scripting). Can anyone recommend anything helpful to beginners like me?

    ...............
    SUWAIN: Slashdot User Without An Interesting Name

    --

    ...............
    SUWAIN: Slashdot User Without An Interesting Name

  35. Advantages to PHP over Perl? by tzanger · · Score: 3

    This isn't meant as a flame or to start a flamewar... This is a valid question I have regarding the two languages and their place.

    Perl (mod_perl to be exact) is a huge behemoth. But it allows me to reuse the code I've created over the years to be reused outside of the web realm and without a special "wrapper" program -- just Perl.

    I've heard all kinds of people say that PHP is faster... Than perl under mod_perl? I haven't been able to find a decent real benchmark for either. I've coded in PHP, and I've coded in Perl. They both "feel" pretty much the same to me and seem to run just as fast (most of my code is just formatting the output of database requests, since I optimize all the requests themselves instead of pulling in vast reams of information and sorting it in the web server. I don't want to keep two languages just hanging around which seem so similar, as I don't seem to see any kind of advantage to one over the other in the web realm.

    Does anyone have any experience or a real-life style of benchmark which would help convince me that PHP is a good thing to keep around even though Perl seems to do most, if not all, of what PHP does and at the same speed?

    Again, this is NOT intended as a flame. Seems like a good ontopic post for this particular story though...

  36. Re:Publishers who include CDs ... by Genom · · Score: 3

    Actually, I find that having the full text of the book in some easily searchable format on a CD is a GREAT help.

    The New Riders book reviewed above has just such a CD (with the book in searchable PDF format) - I leave the hardcopy at home for reference there, and leave the CD at work -- having a copy at each location without having to lug the book back and forth or buying another copy of a relatively expensive book (let's face it, programming books ain't cheap!) is EXTREMELY handy.

    I could care less what else is on the CD.

  37. Re:The "Programmer to Programmer" WROX books... by Zico · · Score: 3

    Fleet Admiral Ackbar wrote:

    Whew, thank G-d I'm not as geeky as those people

    Dude, you took the name of a fucking Star Wars character. Who are you trying to kid? :)


    Cheers,

  38. Re:The Advances of PHP Documentation by Azog · · Score: 3

    I've been doing a lot of PHP programming over the last two months. Before that I had a lot of experience programming in C++. I think PHP is great. I'm really looking forward to using PHP 4, with the optimizers and precompilers.

    I mostly use the online documentation, but I've got the pocket reference by Rasmus Lerdorf. It's pretty helpful once you know the basics, but you probably wouldn't want to learn PHP from it.

    One thing that I would like to see covered in the books is PHPLIB. I used PHPLIB for my last project, and man, does that stuff rock! It has very useful code for sessions, authorization, database access, query and table widgets, and more.

    You see, one of the problems with doing a nice web app is that HTTP is a stateless protocol - the server gets a series of requests, but doesn't track the flow of the user from one page to another. PHPLIB fixes this with sessions: as long as the user is on the site, they have a unique session ID. Even better, session variables can easily be stored from one page view to the next, and this is nearly automatic. It allows you to forget that HTTP is stateless!

    The object oriented design of PHPLIB is pretty good too - I've subclassed the table and query widgets without too much trouble, although PHP has some limitations with inheritance that are a little annoying. (A subclass that overrides a method can't call the implementation of that method in the base class - or at least I don't know any way to do it.)

    My only major complaint with PHP is that variables are created implicitly. This is convenient for small scripts, but sucks for complicated applications, since typos in variable names don't cause parsing errors, they just get created as empty variables. On a related note, global variables have to be declared as global inside functions. If you forget, you just get another empty local variable. Similarly, member variables of objects must be referred to as $this-&gt somevar in methods. That's fine, but if you forget - whoops, no error message, just another new, empty variable.

    I'm hoping PHP4 will have an option for requiring explicit variable declarations. That would make PHP nearly perfect.

    Torrey Hoffman (Azog)

    --
    Torrey Hoffman (Azog)
    "HTML needs a rant tag" - Alan Cox
  39. Publishers who include CDs ... by alkali · · Score: 3

    ... in books on web development should be forced to eat them. Anyone developing for the web is going to have a net connection by which they can obtain a fresh copy of anything they need (even a 56K modem will usually do in a pinch). Instead, the prices are jacked up by $10/unit and we're stuck with some worthless plastic that makes the back cover unwieldy. Grrr...

  40. Web App. Development With PHP 4.0 -- Fantastic by waldoj · · Score: 4

    I actually sent a fan letter to Tobias Ratschiller, I love this book so much. I must confess that I'm only halfway through, but it's really get to see a guide to programming style in PHP, my favorite language. I recommend it highly to anybody that's looking to do PHP professionally.

    What I *would* have liked to see in this is more background information on OOP. I've never worked with OOP, so I feel at a bit of a disadvantage. But I'll brush up elsewhere, I guess, but I wish that this would have been included.

    Still, this is the #1 PHP book out there, and I can't recommend it more highly. Get it.

    -Waldo

    -------------------

  41. With PHP, it's pretty much RTFM by revbob · · Score: 4
    I've done quite a bit of PHP3 and MySQL, and apart from a few runs to places listed on the PHP links page and PHP FAQts, I've pretty much gotten everything done with the excellent HTML manual.

    About the only thing the manual lacks is an index of functions, but a little bit of experience is generally enough to help you figure out the category under which they've hidden the function you're looking for. I see now that the PDF version of the manual is indexed, so newbies to the manual may want to start there.

    OTOH, I'm a long-time C programmer, and when I wondered about syntax, pretending that PHP is C with dollar signs in front of the variable names has worked out more often than not.

    Since this page is (presently) screwey and I can't figure out how to reply to an individual posting, in answer to "why PHP instead of Perl?", why not? Oh, all right. Here's a couple of reasons:

    • PHP runs in the context of Apache (except the Windows version) which makes it outrageously fast on the UltraSPARC II I'm using most of the time, but then so does perl if you use mod_perl. You'll notice I said nothing about "X is faster than Y". I've found PHP/MySQL to be "very fast" in my applications, and let's leave it at that.
    • PHP has got excellent integration with databases (especially MySQL), but I imagine something similar is available for perl.
    • PHP is smaller than perl, which means that a PHP mod Apache won't have anything like the footprint of a mod_perl Apache (good to know when you're paying Sun's memory prices)
    • There's nothing remotely similar to CPAN, and the Free PHP apps I've seen out there aren't that useful, which means that if you're writing PHP, you're probably doing it mostly from scratch rather than extending others' apps. I actually find this useful. I figure if you're doing server-side scripting, speed is the number-one virtue, and reuse -- at least the kind of reuse I've done -- usually incurs a speed penalty.

    So if I were buying a PHP book, the first thing I'd look for are applications that are like the application I'm building to see if I could steal some ideas and code snippets. And I'd look for stuff about the big picture that the originators sometimes forget to put into their documents. But I'm not in the market for a PHP book because the manual is so good and because years in the salt mines of C have pretty well taught me how to code a solution to a problem.

    Let me hit on one more thing if I may. When you read the source code, you're reading the truth. When you the canonical documents (the language spec or the documentation supplied with the language) you're one step away from the truth. When you read a textbook, you're two steps away from the truth.

    I'm generally too lazy to read the source code (not always -- that's how I learned Unix networking, but there were some special circumstances there or I'd just have read a book like a sensible person), but I've been bushwhacked by enough documentation bugs to do as much learning as I can from the canonical documents.

    YMMV, of course.

  42. The Advances of PHP Documentation by Pac · · Score: 5

    A few years ago, when I started using PHP (somewhere between versions 1.x and 2.x) for professional web programming, the sole sources of documentation were a tiny manual written by Ramus himself (the same Ramus of the second reviewed book - the reviewer fails to note that Ramus Ledorf was PHP primary creator and maintained it almost by himself until the 3.0 effort) and the mailing list.

    It was pretty hard to understand some features without delving in the C source (incidentally, PHP is one of the most well behaved coding efforts I have seem to date. The 1.x,2.x and 3.x sources compile without a flaw in almost any flavour of Unix, and I say almost because I haven't tried them all).

    Nowadays, besides the wonderful online documentation, you have lots of books (9 available, 12 coming soon, according to Amazon). It is an easy world.

    If you are looking for a place to start, the site is certanly this place. If you need a book, try Core PHP Programming. For a deeper look, Professional Php Programming seems to be the way to go.

    And, the reviewer opinion notwithstanding, buy Ramus book and let it rest beside K&R, Wirth and Stroustrup books for a while. Not exactly Ramus league, but PHP is more useful for Web programming in the Web than C,C++ and all Wirth languages combined.

  43. annoted manual at php.net rules by MattW · · Score: 5

    Php.net has an excellent docs section, and I learned to code php and set up a fairly major site from scratch just reading their annoted manual. I will say, if you're new to php, try to read through each section even if you don't THINK you'll need it. There's so many goodies built in, you're bound to miss some. Also, the annoted manual is good because the users offer some clever uses of many pieces of code, or good ways to do things like parse form inputs en masse for illegal characters, or whatever.

  44. I've stuck to online resources by mu_cow · · Score: 5

    These books may be useful, but mostly everything I have needed has been online. The PHP manual is pretty comprehensive and easy to navigate. If you do not have it, download it now!

    I have found a lot of help on http://www.phpbuilder.com/ this has a lot of source code, configuration help and helpful forums. From just these two sources you could certainly produce something of slashcode complexity if you have some programming experience.

  45. Everythings Online by tupawk · · Score: 5
    There really is no need for a book on PHP. I taught myself totally from scratch using online resources. Here is a short list of the ones I found most useful:
    • PHP - This is the site that started it all. Make sure to check out the documentation section.
    • Webmonkey PHP Tutorial - This site is great for getting started with PHP and MySQL.
    • PHP Builder - My favorite site about PHP. Lots of good examples and a great message board for all your programming needs!
    • Zend - This site is a great portal for more PHP resources.

    Hope these sites help out.

    --
    "it could just be the midgets. You've got to be careful with midgets in Spandex." --Jamie Richardson