Jump to content


Photo

What comes after PHP?

php

  • Please log in to reply
21 replies to this topic

#1 Eritrea

Eritrea

    Member

  • Members
  • PipPip
  • 25 posts

Posted 22 April 2013 - 01:13 PM

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



#2 Mahngiel

Mahngiel

    Advanced Member

  • Members
  • PipPipPip
  • 1,076 posts

Posted 22 April 2013 - 01:17 PM

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.


?????????????????? This is a signature ????????????????????????

What do you  mean "so please write the code for me . . . "? We aren't here in gleeful anticipation just waiting to write code for you, you know.

CodeIgniter Libraries: Image Lib | Paginator Lib | AJAX Upload

#3 Eritrea

Eritrea

    Member

  • Members
  • PipPip
  • 25 posts

Posted 22 April 2013 - 01:22 PM

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. 



#4 Jessica

Jessica

    This is not my name.

  • Gurus
  • 8,982 posts
  • LocationDallas, TX
  • Age:26

Posted 22 April 2013 - 01:29 PM

Sounds like you want to learn about things like design patterns.

Ps: micro-optimization is a BAD thing. Not something you want to do.
My goal in replying to posts is to help you become a better programmer, including learning how to debug your own code and research problems. For that reason, rather than posting the solution, I reply with tips and hints on how to find the solution yourself. See below for useful links when you get stuck.

How to Get Good Help: How to Ask Questions | Don't be a help vampire
Debugging Your Code: Debugging your SQL | What does a php function do? | What does a term mean? | Don't see any errors?
Things You Should Do: Normalize Your Data | use print_r() or var_dump()
Lulz: "Functions should not have side effects." - trq

Please take a look at my new PHP/Web Dev blog: The Web Mason - Thanks!!

#5 gizmola

gizmola

    Advanced Member

  • Administrators
  • 4,069 posts
  • LocationLos Angeles, CA USA

Posted 22 April 2013 - 02:30 PM

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.

#6 ignace

ignace

    Now mod flavored

  • Moderators
  • 6,239 posts
  • LocationBelgium

Posted 22 April 2013 - 02:35 PM

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 by ignace, 22 April 2013 - 02:35 PM.


#7 KevinM1

KevinM1

    Snarkimus Prime

  • Moderators
  • 5,196 posts
  • LocationNew Hampshire, USA

Posted 22 April 2013 - 03:50 PM



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.



#8 Hall of Famer

Hall of Famer

    OOP Fanboi

  • Members
  • PipPipPip
  • 315 posts
  • LocationIthaca

Posted 22 April 2013 - 05:04 PM

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.


Welcome to the world of OOPHP! In a perfect script, everything is an object. You cannot be perfect, but you can approach as close as can.

zog841.jpg


#9 trq

trq

    Advanced Member

  • Administrators
  • 30,924 posts
  • LocationSydney, Australia.

Posted 22 April 2013 - 09:27 PM

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.


http://thorpesystems.com | http://proemframework.org | http://github.com/trq

SmtpCatcher - A very simple mock sendmail useful for testing PHP mail scripts.
OPM - My Linux package manager.


#10 KevinM1

KevinM1

    Snarkimus Prime

  • Moderators
  • 5,196 posts
  • LocationNew Hampshire, USA

Posted 22 April 2013 - 10:41 PM

I'd pay money to see HoF in a university level course. His mind would be blown.

#11 Hall of Famer

Hall of Famer

    OOP Fanboi

  • Members
  • PipPipPip
  • 315 posts
  • LocationIthaca

Posted 23 April 2013 - 05:45 AM

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 by Hall of Famer, 23 April 2013 - 05:51 AM.

Welcome to the world of OOPHP! In a perfect script, everything is an object. You cannot be perfect, but you can approach as close as can.

zog841.jpg


#12 trq

trq

    Advanced Member

  • Administrators
  • 30,924 posts
  • LocationSydney, Australia.

Posted 23 April 2013 - 06:10 AM

Well design patterns are only applicable in OOP.


BS.

http://thorpesystems.com | http://proemframework.org | http://github.com/trq

SmtpCatcher - A very simple mock sendmail useful for testing PHP mail scripts.
OPM - My Linux package manager.


#13 KevinM1

KevinM1

    Snarkimus Prime

  • Moderators
  • 5,196 posts
  • LocationNew Hampshire, USA

Posted 23 April 2013 - 07:12 AM

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.

#14 Jessica

Jessica

    This is not my name.

  • Gurus
  • 8,982 posts
  • LocationDallas, TX
  • Age:26

Posted 23 April 2013 - 07:13 AM

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.
My goal in replying to posts is to help you become a better programmer, including learning how to debug your own code and research problems. For that reason, rather than posting the solution, I reply with tips and hints on how to find the solution yourself. See below for useful links when you get stuck.

How to Get Good Help: How to Ask Questions | Don't be a help vampire
Debugging Your Code: Debugging your SQL | What does a php function do? | What does a term mean? | Don't see any errors?
Things You Should Do: Normalize Your Data | use print_r() or var_dump()
Lulz: "Functions should not have side effects." - trq

Please take a look at my new PHP/Web Dev blog: The Web Mason - Thanks!!

#15 ignace

ignace

    Now mod flavored

  • Moderators
  • 6,239 posts
  • LocationBelgium

Posted 23 April 2013 - 12:23 PM

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 by ignace, 23 April 2013 - 12:39 PM.


#16 seandisanti

seandisanti

    Advanced Member

  • Members
  • PipPipPip
  • 33 posts
  • LocationLas Vegas, Nv

Posted 23 April 2013 - 01:16 PM

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. 



#17 Hall of Famer

Hall of Famer

    OOP Fanboi

  • Members
  • PipPipPip
  • 315 posts
  • LocationIthaca

Posted 23 April 2013 - 11:03 PM

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 by Hall of Famer, 23 April 2013 - 11:04 PM.

Welcome to the world of OOPHP! In a perfect script, everything is an object. You cannot be perfect, but you can approach as close as can.

zog841.jpg


#18 Q695

Q695

    Advanced Member

  • Members
  • PipPipPip
  • 703 posts
  • LocationEarth

Posted 24 April 2013 - 12:20 AM

Learn Programmable Logic Controlers, or Assembly.  That's next :suicide:


if ($problem==mark_solved){

solution ($problem);}

 

if ($skill_level==learning && $my_knowledge==the_required_level_of_knowledge){

     echo "I will try to help, because you're still $skill_level , and my skill level is at $my_knowledge";

} else {

     echo "I can't help you, go away.";

}


#19 trq

trq

    Advanced Member

  • Administrators
  • 30,924 posts
  • LocationSydney, Australia.

Posted 24 April 2013 - 04:53 AM

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.

http://thorpesystems.com | http://proemframework.org | http://github.com/trq

SmtpCatcher - A very simple mock sendmail useful for testing PHP mail scripts.
OPM - My Linux package manager.


#20 gizmola

gizmola

    Advanced Member

  • Administrators
  • 4,069 posts
  • LocationLos Angeles, CA USA

Posted 24 April 2013 - 04:07 PM

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.




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Cheap Linux VPS from $5
SSD Storage, 30 day Guarantee
1 TB of BW, 100% Network Uptime

AlphaBit.com