Have trolled around alot of the PHP help sites and tried of the scripts available at http://www.hotscripts.com . Basically it's getting to the point where I have a good idea of what's capable with PHP and I'm trying to get to the next level in PHP, beyond hacking my way through scripts and writing inefficient, messy code.
Wondering if anyone has general advice on where to go next. What are the good practices to adopt? How should I go about building up a functions library? Are there any articles out there that can help with making the jump from newbie to intermediate? And how do I know when I've got there (what are the signs of a better PHP developer)?
Here are some concepts you'll want to start thinking more about as you get better: security, portability across OS's/browsers , database abstraction, sessions, object-oriented design (encapsulation, information hiding, inheritance, polymorphism), error-logging and reporting, documentation, maintainability, templates, database optimization and advanced SQL.
One big thing is to create your scripts so that they function on a limited PHP configuration (namely with register_globals off). Good ways to get better include: working on more projects, working on more complex projects, answering questions on forums/IRC, reading articles.
Pick up a project. There is nothing like working on a real project to get your hands dirty. Also, I would agree that you can get by, by the seat of your pants in most aspects of web scripting, except for relational database design. Bad relational database design will come back to bite you. So my recommendation is to get invlolved in a practical project, and get the relational database theory under your belt.