For those working to move from procedural PHP into a more object-oriented world but may be having some trouble with the transition, the Star Tutorial site has a great beginner OOP in PHP guide you should check out.

They cover all of the basics you'll need to get started with objects in PHP including:

classes versus objects

visibility

inheritance

polymorphism

interfaces versus abstract classes

Each section is a quick definition and a bit of code to help illustrate the point. This isn't going to be a hand-holding kind of tutorial showing you each step to making an OOP application. Instead, it provides quick, high level summaries of the main OOP concepts to get you on the right road.

The popular "PHP The Right Way" site has added a new section about a technology that's already in wide use across PHP frameworks and other applications in the community - Dependency Injection.

Dependency Injection is providing a component with it’s dependencies either through constructor injection, method calls or the setting of properties. It is that simple. [...] If you have ever read about Dependency Injection then you have probably seen the terms “Inversion of Control” or “Dependency Inversion Principle”. These are the complex problems that Dependency Injection solves.

The new section talks about some of the fundamentals behind the use of DI (dependency injection), what the "Inversion of Control" and "Dependency Inversion Principle" are and a bit about a common implementation - dependency injection containers.

The Symfony project's blog has a new post today about a big move that one of its resources it making - the framework's plugins are getting their own section.

I am pretty happy to announce that I have just deployed a new version of the symfony project website with a brand new "Plugins" section (look at the top menu entries) to replace the Trac plugin management system.

The new section has a listing of all of the available plugins (can be filtered) and dedicated pages for each of them with things like license, version and release information. You can also search the plugins based on keywords and authors. Developers adding their plugins have a full admin interface and uses the Trac accounts to manage access.

In an effort to keep things a bit more secure (after finding out about this) the symfony team has officially released their own security policy to help prevent issues like that in the future.

You may be wondering why it has been taking us such a long time to react. Here's the main reason: we had not a very strong security alert reporting and qualifying process. This has been fixed recently. So as of now, if you find a security bug in symfony, please send an email to security at symfony-project.com, with as much details as you can and ideally a patch if you can provide one.

The wiki has a whole section on how to report security issues to get them to the right place.

DevShed has posted a new tutorial today that continues their series looking at XML handling with PHP. This time it's a focus on attributes in a CDATA section with DOM.

Since the DOM XML library comes equipped with many other methods that can be useful for adding custom attributes to the existing nodes of a given XML document, and creating new CDATA sections, among other things.

Raphael Stolt has posted a book review of one of Manning Publishing's PHP-related books, "PHP in Action: Modern Software Practices for PHP".

Over the last few days I got the chance to skim through the upcoming Manning release "PHP in Action: Modern Software Practices for PHP" by Dagfinn ReiersÃ¸l et al. The reviewed book is seperated into four main parts, covering lots of interesting topics in a good and fluent writing style.

Raphael outlines the book, mentioning the four parts the book is divided up into:

Basic PHP tools and concepts

Developing applications via Test Driven Development

Web presentation and user interfaces

Object-oriented development including things like database abstraction

Raphael gives the book a positive rating and recommends it for anyone that has the basics down and is looking to extend their knowledge that much more.

Raphael Stolt has posted a book review of one of Manning Publishing's PHP-related books, "PHP in Action: Modern Software Practices for PHP".

Over the last few days I got the chance to skim through the upcoming Manning release "PHP in Action: Modern Software Practices for PHP" by Dagfinn ReiersÃ¸l et al. The reviewed book is seperated into four main parts, covering lots of interesting topics in a good and fluent writing style.

Raphael outlines the book, mentioning the four parts the book is divided up into:

Basic PHP tools and concepts

Developing applications via Test Driven Development

Web presentation and user interfaces

Object-oriented development including things like database abstraction

Raphael gives the book a positive rating and recommends it for anyone that has the basics down and is looking to extend their knowledge that much more.

Although a site may not always warrant a full multilayer navigation menu, most websites usually have at least a few different sections. Often many pages have links back to the top pages of each section, and therefore it is useful to highlight which section the user is currently in. Listing 9.2.1 looks at the URL of the current web page and, based on that, determines what section of the website it is in and changes the section menu.

They provide the script and a brief explaination, but not much else. Seems like the snippet might make more sense with a little more context, but it's still useful.

Although a site may not always warrant a full multilayer navigation menu, most websites usually have at least a few different sections. Often many pages have links back to the top pages of each section, and therefore it is useful to highlight which section the user is currently in. Listing 9.2.1 looks at the URL of the current web page and, based on that, determines what section of the website it is in and changes the section menu.

They provide the script and a brief explaination, but not much else. Seems like the snippet might make more sense with a little more context, but it's still useful.

On Greg Beaver's blog today, there's an announcement about the release of the latest version of PEAR - version 1.4.7.

PEAR version 1.4.7 has been released at pear.php.net, this is a recommended upgrade for all folks. Particularly important is anyone who is trying to do RPM packaging using the --packagingroot option (remember --installroot is for people who wish to create a workable version of PEAR in the installroot directory, --packagingroot is for those who wish to create a fake installation for RPM purposes). Also, Tim Jackson's PEAR_Command_Packaging package has been introduced to solve the issues in the makerpm command, and we welcome both Bertand Gugger and Tim Jackson as helpers to the PEAR package itself.

Other updates include the implementation of a --CLEAN-section in .phpt files, run-tests for PHPUnit-based tests, and loads of bug fixes. Check out this latest update and all of the new features over on the PEAR website...