5 ms·
I recently revisited some of the earliest web code I ever wrote, which was in PHP 5.5 (about 7 years old, I think). I wasn't surprised by all the mistakes I ma
by dlbucci 8y ago
I recently revisited some of the earliest web code I ever wrote, which was in PHP 5.5 (about 7 years old, I think). I wasn't surprised by all the mistakes I made, both from being a newbie programmer and from making what I think were fairly easy-to-make PHP mistakes. After all, every tutorial I could find back then used mysql, didn't used real_escape_string, etc.
What was surprising was how hard I had to dig now, 7 years later to find out how to do things correctly in PHP 7. Searching for what I thought should be fairly common things to do seemed to bring up all of the old articles that I first mislearned from, and it was really hard to find things like what the best way to iterate over a mysql result set was.
Honestly, after putting my 7 years of experience to practice, the final code didn't look half bad, but I don't think I'll ever end up using PHP since it still appears to be very easy to write bad code. Maybe if a definitive guide for how to write good PHP shows up, I'll give it a shot (or maybe I'll just try Hack).
- cujo 8y agoThere are resources for that... http://www.phptherightway.com http://www.phptherightway.com is often recommended in my circles.
- prplhaz4 8y agohttp://www.phptherightway.com/ http://www.phptherightway.com/ attempts to do just that - can't vouch for its effectiveness, but is a resource that was at least updated for PHP 7... https://github.com/codeguy/php-the-right-way https://github.com/codeguy/php-the-right-way
- TooBrokeToBeg 8y agoI always hated the DI fervor in PHP, like it solves all problems. You get such gems from phptherightway as > We can demonstrate the concept with a simple, yet naive example. > Here we have a Database class that requires an adapter to speak to the database. It tries so hard to be java, which seems backward.
- __aeneas 8y agoI can only agree. I wrote a CMS with Zend Framework 2 which is heavy on DI and tries to be like Spring + Hibernate (Doctrine). Apart from being very hard to understand for new devs in the project, it's also very, very slow. The way PHP is evolving is definitely towards the Java world and I think it's the worst decision they could make. Moved to Go 5 years ago, never looking back.
- trm42 8y agoHaven't had to use Zend but at least Symfony DI is really heavy to use with all the services.yamls and the javaisms it introduces. DI can be heavy or it can be something mostly automagical like in Laravel. That's something I've enjoyed quite a bit. Basically it doesn't that much exist until you start needing special cases. Quite a big part of the PHP community is gravitating towards Laravel and the new steam it introduced with OOB best practices and "let's try hard to avoid the Java-heaviness". Laravel seems to have quite nice balance between easy for new devs and bunch of powerful concepts when needed. Lots of basic problems solved OOB as well.
- edgarvaldes 8y agoWhat is DI?
- prplhaz4 8y agoDependency Injection: http://www.phptherightway.com/#dependency_injection http://www.phptherightway.com/#dependency_injection
- RossM 8y agoIf you remember that so, so much old PHP was reliant on global scope included from other files, it explains a lot of the DI obsession. If you were lucky, it was just a single bootstrap.php, but often not.
- pan69 8y agoJust like when demonstrating object oriented programming with trivial examples, DI suffers the same problem. DI, or Inversion of Control (the thing you want to achieve "through" DI), works best at scale, not with Hello World examples. When you work on a large code base with a large team you need some philosophy and principles to guide you. Decoupling is one of those things. Since Java is often used to build large software projects you will see these techniques being used and we therefore associate these things with Java (i.e. the Java bloat). Over the past few years it seems that PHP has become an "easier" Java and it's therefore only natural that these techniques and approaches are then also applied.
- deleted 8y ago[deleted]
- closeneough 8y agoThis is also a initiative to improve this situation: https://paragonie.com/blog/2018/01/our-ambitious-plan-make-insecure-php-software-thing-past https://paragonie.com/blog/2018/01/our-ambitious-plan-make-i...
- deathtrader666 8y agoWhy not fall back on a microframework like Slim, or something that has best practices built-in like Laravel or Symfony. 7 years ago we had Codeigniter, which was also quite good.
- scns 8y agophpdelusions.net
- scns 8y agoshould have written more, was in a hurry. Even though the url sounds inflammatory, it is actually a really helpful resource on how to do dbaccess correctly.
- mgkimsal 8y ago> but I don't think I'll ever end up using PHP since it still appears to be very easy to write bad code I was in the Java world for many years, and found it to be incredibly easy to write 'bad' code. Sure it looked OK, but whenever there was a problem... i would just have people telling me it was 'wrong' and 'bad', but rarely ever any 'good' way to do something, short of entirely rebuilding in someone else's preferred library/framework/stack. Loads of "well, that never happens to me", "works fine", etc. Was it tomcat? which version? was it one of the 95 dependencies interacting with tomcat in a way no one had ever hit? Oh shit - you're using tomcat? WTF? Glassfish/jetty/jboss are the only 'real' tools to use... etc.
- NVRM 8y agoThat's right, google search in past year only, btu focus on the php.net docs.