The feeling of being overwhelmed with the projects is because you're trying to get a grasp of the project in whole. I think you would benefit from following/studying smaller code pieces. This should be what bigger projects contain anyway: smaller pieces (components) used as building blocks to form a greater project.
One project I have learned a lot from was Zend Framework. The components are modular so you can study them in isolation. They will allow you to improve your understanding of architecture and design.
Another thing is studying some common design patterns (singleton, factory, strategy to name three) and recognizing them being used in the projects or trying to use them in your own project and see how that improves your code.
You can get a decent grasp of security issues by reading the following guide: phpsec. Also, if you're working on a part of your project that you know needs attention in this respect, search for some articles and try to apply the advice given there.
I think one needs to take small steps. Don't think you can learn everything at once. I find that I improve fastest by focussing on one point at a time and delving more deeply into it. I try to apply it as best as I can, change some previous code based on my deeper understanding and move on until I hit another sticking point. Many times I seem to encounter things I have already studied but restudying with improved skills allows me to get a deeper understanding than the previous time.