Customer Rating:      Summary: VERY VERY HIGHLY RECOMMENDED!!! Comment: Are you a professional or novice to PHP and PostgreSQL 8? If you are, then this book is definitely for you. Authors W. Jason Gilmore and Robert H. Treat, have done an outstanding job of writing a book that offers users an impressive platform for building high-powered Web applications.
Gilmore and Treat, begin by acquainting you with the basics of PHP offering insight into its roots, popularity, and users. Then, the authors show you how to install and configure PHP, as well as, the Apache Web server. Next, they cover the various aspects from the basics of the PHP language and class libraries to topics like authentication, security, session handlers and e-mail functionality. The authors also focus on PHP Extension and Application Repository (PEAR). They continue by addressing PostgreSQL, including tables and data types, views, functions, indexes and triggers. Then, the authors present the more pertinent PHP functionality to access PostgreSQL. Next, they show you how to install and configure your local test bed. The authors continue by describing the server strain that PG can handle. Then, they show you how to use Smarty and PearDB. Next, the authors also cover the integration between PostgreSQL and PHP; the interface with PostgreSQL from PHP; and how to write reusable queries. Finally, the authors go further by covering the installation and configuration of PostgreSQL.
This most excellent book is not for beginners. Nevertheless, you will find plenty of tips and notes focusing shortcuts to complete both new and familiar tasks.
Customer Rating:      Summary: Supposed to be a PHP-PostgreSql not Smarty-Pear Comment: What's annoying about this book is that I bought it to learn more about PHP and PostgreSQL but the authors decide to use Smarty and PearDB throughout instead. If I wanted to learn those two I would have bought books about them. Smarty and PearDB is used in every single piece of code they do which is extremely annoying. I don't want to learn Smarty or PearDB. If you're trying to learn PHP and PostgreSQL don't buy this book. If you want to learn Smarty and PearDB this book might be for you.
Customer Rating:      Summary: Old Hat Comment: To me, this book was a disappointment. I had expected much more in the way of integration between PostgreSQL and PHP. Some of the questions that I had expected an answer for, was like: What is considered 'best practice' as to how to interface with PostgreSQL from PHP? How to write reusable queries?
Instead, the book is divided in two disparate parts: One is about installing and configuring PHP, along with a rewrite of parts of the online PHP manual; the second part is about installing and configuring PostgreSQL, along with a rewrite of parts of the online PostgreSQL manual. None of which, I dare say, I found particularly useful.
On my system, a Gentoo Linux computer, most of the installation of both PostgreSQL and PHP is covered by the simple command "emerge php postgresql". So, what do I need this book for?
I found some nuggets in the PHP section about array functions that I wasn't aware of, but mostly it was all old hat. I simply don't need yet another instruction on how to install PostgreSQL and PHP on my computer. I've figured that out a long time ago.
Customer Rating:      Summary: Beginning PHP Not Beginning Programming Comment: I read this edition after Gilmore's earlier book on PHP and MySQL, so let me quote the pertinent parts of that review and augment with appropriate comments:
A beginning PHP book, not a beginning programming book. The subtitle, 'From Novice to Professional', can be a tad misleading for the novice coder. A beginning programming book covers a lot of material that this book assumes the reader already understands. Many software books include a 'Who Is This Book For' section that offers some guidance on the suitable reader knowledge level, not this one.
That said, I found this book to be very helpful. The sections on installing and configuring Apache, PHP and PostgreSQL certainly saved me many hours of reading the online documentation and tweaking of settings while setting up my local test bed. That, in itself, made me a very happy camper. The author goes on to cover the various aspects from the basics of the PHP language and class libraries to topics like Authentication, Security, Session Handlers and eMail functionality that help anyone new to PHP setup some fairly sophisticated site capabilities.
Gilmore has included a section on PEAR (PHP Extension and Application Repository). This is a wealth of prewritten classes and packages that can be used to add even more sophisticated functionality to the novice's web development toolbox. The author demonstrates several of the more prominent packages.
New for this edition, Robert Treat has contributed coverage of PostgreSQL, including chapters on tables and data types, views, functions, indexes and triggers. There is also coverage of the more pertinent PHP functionality to access PostgreSQL. Most of the examples offered are clean and general enough to be useful templates for the reader's tailoring.
My suggestion for novices to PHP is read through chapter 9, then skip to the various sections that solve specific problems being faced or are of particular interest, including installing and configuring your local test bed.
Bottom line, this edition was a good book for intermediate to veteran programmers looking for a quick tutorial on PHP (circa version 5.1) and specifics for the PostgreSQL community. Novice programmers should ensure that they have a full understanding of the basics of programming (and OOP) before attempting it.
P-)
Customer Rating:      Summary: Definitive Reference Comment: If you are like me, you have probably dabbled in PHP and MySQL driven CMS solutions, simply because that combination is so prevalent. I consider myself to be primarily a front-end developer / graphic designer, and am not terribly interested in knowing every server-side language there is, so long as whatever I am using can get the job done. Suffice it to say that while I am eager to learn and expand my horizons, my exposure to more than LAMP has been limited.
So, when Jason Gilmore sent me a review copy of his latest book, that he co-authored with Robert Treat, I was glad to be learning about this powerful database. The title is Beginning PHP and PostgreSQL 8, and the structure of the text mirrors closely that of Jason's other best-selling book on PHP and MySQL 5, now in its second edition. To get a feel of the PHP aspect of both these books, read my other previous reviews on the First Edition and the Second Edition...
[...]
This saves me having to repeat myself, covering the PHP side of things as much. Suffice it to say that it is extensive and well worth reading. Now, allow me to focus on the second aspect of this book, PostgreSQL. While MySQL bosts being the world's most popular open source database, PostgreSQL has stake to the claim of being the world's most advanced open source database. Are these two in competition? Well, yes and no. I will expound further on that, but first a brief history lesson.
In 1986 at UC Berkeley, professor Michael Stonebreaker set out to build a better open source database than his previous project, called INGRES. Since the first project was a huge success, he decided to entitle the follow-up Post-GRES. So, while the first name was an acronym, Postgres is simply a derived nick-name that grew out of it. Postgres became so popular that providing tech support was becoming far too time consuming for Stonebreaker and his team. Eventually they ceased development to focus on teaching.
But, since it was released under the BSD license, development was picked up by Andrew Yu and Jolly Chen, who added in SQL functionality. Eventually this hybrid grew into the PostgreSQL database we know today. Their mantra has always been stability first, speed second. Whereas MySQL is built for responsiveness, PostgreSQL is designed to be rock-solid. This mentality is reflected in the choices of database mascots: a Dolphin vs. an Elephant.
You might have been hearing about PostgreSQL more lately because of the rising interest around the Django Project, which recommends PG as their database of choice. While it is of course driven by Python and not PHP, this further illustrates the scalable versatility of PostgreSQL. When reading this book, I was blown away by some of the server strain that PG can handle.
Consider these examples: Afilias Incorporated, the Internet registrar company responsible for managing the .info domain name extension, handles over 1000 database inserts per second! The NOAA weather service Weather.gov has scaled their operations across 150 PG servers. Whitepages.com runs PG databases exceeding 375 gigabytes with over 250 million rows. Big newspaper sites also run PG, such as Lawrence.com, KUSports.com and LJWorld.com.
Mega-churches such as FellowshipChurch.com also make use of PostgreSQL. When you have 20,000 people that go to your church, each one needing to check up on what's happening on a dynamically driven PHP website, that can be quite a server strain. To handle this, you either need an expensive proprietary platform, or a scalable open source solution. Fellowship opted to roll their own CMS and power it with PG.
Okay, so now you get the point that PostgreSQL is a force to be reckoned with. Allow me to touch briefly on the code aspects of what I thought was cool in this book. Robert has done a great job of flowing with Jason's proven writing-style. Many times, multi-author books differing topics can seem disjointed, but that is not the case here. He explains things very thoroughly without mincing words.
One of the cool features of PG is Multi Version Concurrency Control or MVCC for short. This allows "snapshots" of your database to be taken at set intervals, so that you can serve up cached data without repeatedly hitting the database, risking a hardware lock-up. This is commonly referred to as the "Digg Effect" or becoming a victim of being "Slashdotted," in which high-traffic websites send a flurry of incoming visitors to a lesser server which cannot handle the load.
PostgreSQL also supports MySQL style row-level locking, but the MVCC method is preferred because of its stability. Another nice feature is the ability to store commonly used queries, and even create abbreviations for frequently called procedures. You could think of it like referring to a best friend by a nick-name. This set of features has been native to PG for some time now, and is something that MySQL has recently implemented as of version 5.
The way I think of the differences between MySQL and PostgreSQL is that PG is a more transactional database. Meaning, if you want large enterprise level sites that handle many insertions and modifications throughout any given day, PostgreSQL is probably the way to go. MySQL can do this with with the InnoDB table type, but PG has better native support for it. PG also sports Foreign key support, Views, Stored procedures, Triggers, Unions and Full joins.
On the flip-side of that coin is that MySQL is typically a bit faster, has a more simplified database layout, and does not require vacuuming. Vacuum is a command that must be run from time to time, and typically is set as an automated process. One of the ways PG maintains consistent stability is through the previously mentioned MVCC method, which disperses duplicate data in order to avoid hitting one particular location repeatedly. Periodically, these duplicates need to be reigned in or vacuumed, to clean up disk space.
In comparing PostgreSQL with MySQL side by side, there is not a clear-cut winner, because it is a bit like comparing apples and oranges. If you want a fast and responsive site, MySQL is probably the way to go. If you are managing one that has a high amount of traffic and needs to handle enterprise level or "mission critical" data, PostgreSQL should be one of the solutions you consider. I think of it this way: MySQL is a ninja, PostgreSQL is a samurai. One is quick and nimble, the other more heavily armored. If you want to learn more about the latter, then this is the book for you; Also available as an eBook, PDF file from the Apress website...
[...]
|
|