Eritrea Posted April 22, 2013 Share Posted April 22, 2013 Sorry, for the rather-misleading title, But, I am a noob, and have been in self-teaching for the past 8 months, and I already know the basics, used mysql_ then changed to PDO, and I am learning OOP now. But, the problem is... there seems to be many things to learn in PHP, aside from PDO, OOP and the basics. Can anyone list them here, according to their difficulty level. Because, I want to learn more, but I don't know where to start. PHP unit, MVC, framworks, .... Hope, someone got the idea Quote Link to comment Share on other sites More sharing options...
Mahngiel Posted April 22, 2013 Share Posted April 22, 2013 Just learn by trying to build something. It's much more practical to learn this way, as you'll go through the headaches of trying to do something and not know how. Through these experiences you'll figure some stuff out -- hopefully. Quote Link to comment Share on other sites More sharing options...
Eritrea Posted April 22, 2013 Author Share Posted April 22, 2013 Just learn by trying to build something. It's much more practical to learn this way, as you'll go through the headaches of trying to do something and not know how. Through these experiences you'll figure some stuff out -- hopefully. Thanks for the reply Mahngiel, but I have done a lot more than building something actually. As, I have made a fully-functional news publishing website, with comments, poll, user profiles, and so and so, plus, a classified-ads site that works similarly with other add sites, but the problem, is that, these sites are made with spaghetti code, your know, even if they can get the job done, I need them to be on just like professionally made, with debugging, micro-optimization... I just need to know more than creating CMS's and scripts. Quote Link to comment Share on other sites More sharing options...
Jessica Posted April 22, 2013 Share Posted April 22, 2013 Sounds like you want to learn about things like design patterns. Ps: micro-optimization is a BAD thing. Not something you want to do. Quote Link to comment Share on other sites More sharing options...
gizmola Posted April 22, 2013 Share Posted April 22, 2013 You can also learn a lot by examining an existing system to see how the creators solved the problem. You stated you were interested in CMS systems. Take a look at the source code for Drupal and Joomla to see how they were designed and coded. Quote Link to comment Share on other sites More sharing options...
ignace Posted April 22, 2013 Share Posted April 22, 2013 (edited) Take a look at the source code for Drupal and Joomla to see how they were designed and coded. If the faces and growling of my Drupal colleagues is any indication, your in for quite a few headaches. Edited April 22, 2013 by ignace Quote Link to comment Share on other sites More sharing options...
KevinM1 Posted April 22, 2013 Share Posted April 22, 2013 Sorry, for the rather-misleading title, But, I am a noob, and have been in self-teaching for the past 8 months, and I already know the basics, used mysql_ then changed to PDO, and I am learning OOP now. But, the problem is... there seems to be many things to learn in PHP, aside from PDO, OOP and the basics. Can anyone list them here, according to their difficulty level. Because, I want to learn more, but I don't know where to start. PHP unit, MVC, framworks, .... Hope, someone got the idea Well, some things flow naturally from one to another, like OOP -> MVC -> Frameworks. Then, there are things that are more about generalized programming philosophy/methodology that may not be directly related to the others, but deals with them, or shapes them in a certain way (TDD, DDD). There are, of course, other important outliers as well (learning how to use a VCS, learning when and how to use an ORM, learning how to integrate issue tracking into your workflow, etc). There's no way to really say, "well topic X is medium difficulty, while topic Y is hard," because everyone learns differently. What's easy for you isn't for someone else, and vice versa. Quote Link to comment Share on other sites More sharing options...
Hall of Famer Posted April 22, 2013 Share Posted April 22, 2013 Thats true, after you learn the basic OO techniques, it is about time to move on to design patterns, and then MVC architecture and the entire framework. Note the fact that you can work with objects does not indicate that you are already an OO programmer. The true beauty of OOP lies in the idea of OOA(Object oriented analysis) and OOD(object oriented design), without them you can easily write amateurish procedural code even if each line of your code has objects in it. To write true OO code, your entire script as a whole needs to be object oriented. Its not an easy process, may take a while to finally get there. Other than the whatever those advanced programmers already mentioned in previous posts, Id also recommend you to look into ORM(object relational mapping). Martin Fowler's book on Enterprise architecture patterns is a very good one to read, while you can also buy Matt Zandstra's Object, Patterns and Practices to see how Fowler's patterns get implemented into the world of PHP. The patterns are generally universal across all programming languages that support OO, but the actual implementation may vary slightly. Quote Link to comment Share on other sites More sharing options...
trq Posted April 23, 2013 Share Posted April 23, 2013 The patterns are generally universal across all programming languages that support OO Again. Not all design patterns require OOP. MVC for instance can be written quite easily in procedural code. Quote Link to comment Share on other sites More sharing options...
KevinM1 Posted April 23, 2013 Share Posted April 23, 2013 I'd pay money to see HoF in a university level course. His mind would be blown. Quote Link to comment Share on other sites More sharing options...
Hall of Famer Posted April 23, 2013 Share Posted April 23, 2013 (edited) Again. Not all design patterns require OOP. MVC for instance can be written quite easily in procedural code. Well design patterns are only applicable in OOP. Sure procedural code can try to 'mimic' some OO patterns, but usually does poorly and never feels the same way as you use the OO approach. I've seen many scripts who have claimed to be using MVC while being procedural, none of them are even half as impressive as true MVC with OOP. It feels like they are trying to force their way into MVC to make their application 'better-looking', but well... You dont use MVC for the sake of using MVC, dont you agree? I'd pay money to see HoF in a university level course. His mind would be blown. I am a graduate student at an Ivy league university, whats your point? I also took many CS courses already for various programming languages, and my CS professors are all OO programmers and strong OO advocates. Edited April 23, 2013 by Hall of Famer Quote Link to comment Share on other sites More sharing options...
trq Posted April 23, 2013 Share Posted April 23, 2013 Well design patterns are only applicable in OOP. BS. Quote Link to comment Share on other sites More sharing options...
KevinM1 Posted April 23, 2013 Share Posted April 23, 2013 Well design patterns are only applicable in OOP. Like trq said, BS. Design patterns are design patterns, not OO-only patterns. They can be implemented procedurally or functionally as well. I am a graduate student at an Ivy league university, whats your point? I also took many CS courses already for various programming languages, and my CS professors are all OO programmers and strong OO advocates. Have you ever taken a class on assembly language? Operating systems? Compilers and linkers? Drivers? I'm pretty sure the answer is 'no', because if you did, you certainly wouldn't keep wrongly asserting that procedural code is amateurish. Quote Link to comment Share on other sites More sharing options...
Jessica Posted April 23, 2013 Share Posted April 23, 2013 I'd pay money to see HoF in a university level course. His mind would be blown.Kevin, only a university graduate would be so confident they knew everything. Quote Link to comment Share on other sites More sharing options...
ignace Posted April 23, 2013 Share Posted April 23, 2013 (edited) I am a graduate student at an Ivy league university, whats your point? That you are gonna come back here after your graduation and ask us to delete all of your posts. It feels like they are trying to force their way into MVC to make their application 'better-looking', but well... I think most people opt to apply well-known patterns in procedural to architecture their application, not to make it eye-pleasing. Drupal for example applies several patterns successfully. Edited April 23, 2013 by ignace Quote Link to comment Share on other sites More sharing options...
seandisanti Posted April 23, 2013 Share Posted April 23, 2013 That you are gonna come back here after your graduation and ask us to delete all of your posts. I think they'd be more likely to just stop using that name. Quote Link to comment Share on other sites More sharing options...
Hall of Famer Posted April 24, 2013 Share Posted April 24, 2013 (edited) That you are gonna come back here after your graduation and ask us to delete all of your posts. I think most people opt to apply well-known patterns in procedural to architecture their application, not to make it eye-pleasing. Drupal for example applies several patterns successfully. I doubt about that though, as I mentioned before my CS professors are all strong OO advocates, cant say I am not at least a little bit influenced. As far as I know, Drupal 8 will be highly object oriented, especially considering it will integrate with Symfony. Apparently the developers have realized their past mistakes, and learned that OO is the right way to go when your application gets larger and larger. Man I am kinda excited, Drupal 8 is gonna be really professional amazing object oriented software. Edited April 24, 2013 by Hall of Famer Quote Link to comment Share on other sites More sharing options...
Q695 Posted April 24, 2013 Share Posted April 24, 2013 Learn Programmable Logic Controlers, or Assembly. That's next Quote Link to comment Share on other sites More sharing options...
trq Posted April 24, 2013 Share Posted April 24, 2013 especially considering it will integrate with Symfony It is not "integrating with Symfony" so much as it is simply making use of some of Symfony's components. They are not alone in this regard. Even a lot of the modern frameworks are using Symfony components. Quote Link to comment Share on other sites More sharing options...
gizmola Posted April 24, 2013 Share Posted April 24, 2013 It is not "integrating with Symfony" so much as it is simply making use of some of Symfony's components. They are not alone in this regard. Even a lot of the modern frameworks are using Symfony components. Very true. With the popularization of composer, PHP is really entering a period where quality component libraries that can be shared across projects is finally a reality, and not a minute too late for the continued viability of the language. While Drupal 8 is indeed a ground - up rebuild based upon a number of the symfony2 components, there's also been a lot of cross pollination, as a number of the Drupal core developers have become very active in the symfony project. Only time will tell whether this is for the good of both projects or not, but the Drupal people sure bring a lot of passion for their vision to the table, which is one of the reasons that they were forward thinking enough to embrace the idea of using components in a very proactive manner. PHPBB is also taking the same path, and doing a rebuild on top of the symfony core components from what I've heard. Quote Link to comment Share on other sites More sharing options...
ignace Posted April 25, 2013 Share Posted April 25, 2013 PHPBB is also taking the same path, and doing a rebuild on top of the symfony core components from what I've heard. So at worst their software exists only out of 80% of crap code. Quote Link to comment Share on other sites More sharing options...
gizmola Posted April 25, 2013 Share Posted April 25, 2013 So at worst their software exists only out of 80% of crap code. Haha. Well I didn't think I would ever consider phpBB again, but I think this bodes well for the project's future. People are going to use phpBB no matter what any of us think about its history or architecture, so at least this is an acknowledgement that they needed to go back to the drawing board. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.