Where is the include coming from?

The includes of the system map out the dependencies of the system, which files depend on which, which subsystem depends on which. When working with a system, it’s always useful to map out the dependencies before hand.

Here are some examples:

WordPress 2.2.1
http://wordpress.org

MediaWiki 1.12
http://www.mediawiki.org/

phpBB 3.0
http://www.phpbb.com/

phpMyAdmin 2.9.1.1
http://www.phpmyadmin.net/

Symfony 1.1
http://www.symfony-project.org/

Zend Framework 1.5.2
http://framework.zend.com/

CakePHP
http://www.cakephp.org/

CodeIgniter
http://codeigniter.com/

Seagull Framework
http://seagullproject.org/
(Demian Turner)

About these ads

68 thoughts on “Where is the include coming from?

  1. Pingback: Cairo’sBlog

  2. Thanks for you blog – always very interesting!
    I was working on include graphs to show my team
    the mess they created. Wrote a Java program for this.

    What tool are you using for the analysis and creation
    of the graphs shown here?

    Regards – Martin

  3. Nice post. Trying to follow all the includes and requires is not an easy task. This is a good resource for understanding how the apps work. Thanks for the post.

  4. Are the applications you’re running the frameworks against equivalent in functionality? I see some files included on the ZF app that may or may not be included in standard applications. It’d be good to run these graphs such that similar functionality is compared.

  5. Pingback: Gráfico de includes

  6. @Matthew

    You are right, ZF includes more functionality. That’s because I’m using the graph from this post. The idea was to show the workflow of the framework. But yes, I guess I can add more functionality to CakePHP and Symfony, and while I’m at it, upgrade Symfony to version 1.2.

  7. Pingback: Care2x Devlopment Blog

  8. Pingback: Everyone should get a 2nd chance

  9. Awesome work!

    Its interesting to consider if there can be any valuable info gleaned just by comparing the thumbnails.

    WordPress & Cake have very flat, slim organizations.

    Zend Framework has a very deep and wide org.

    Codeigniter, Symfony & phpBB organiztions are slim and shallow.

  10. Pingback: Диаграммы взаимосвязей

  11. Pingback: Lasercake

  12. @Kenny Lee: That’s right.

    @Dude: If I’m not wrong, Kohana is a fork of CI, right? I’m guessing the designs are similar.

  13. Pingback: Frameworks vs. Libraries in PHP | David Otton

  14. Pingback: rpsblog.com

  15. @Dude: I’ve just finished browsing Kohana’s source code and you are right, I didn’t find any traces of CI.

  16. Pingback: GrantPalin.com

  17. Link to Image for symfony 1.1 doesn´t work.

    Can you write a little tutorial how to use Inclued and Graphviz ?

    good job!

  18. Pingback: Digital Design News

  19. Thanks for the mention of Inclued, what a great way to get a snapshot of the development style of a PHP project. Here’s the depgraph for Seagull, http://seagullfiles.phpkitchen.com/seagull_depgraph.png, the shape seems closest to symfony at first glance.

    I think another really important metric, on the subject of framework file structures, is number of included files. This Seagull project has 63, which is mostly dependent on the number of blocks loaded, and caching being disabled. A much simpler project I have in zpf 1.5 loads 89 files but feels much slower. Totally agreed that Zend’s “use at will” approach with minimal coupling is the way to go.

  20. Pingback: Yangtze

  21. The Magento (ecommerce) includes diagram should be added to the list. They’re fairly hideous. I didn’t create the view, but you can grab it from here:

    (Image size: 5.5MB. Right click and select Save As…)

  22. Hi Frederico, thanks for the article – very insightfull.
    I’d like to have a closer look at the diagrams for ZF and Symphony but the links doesn’t seem to work. Is that something there might be a solution to because I’d really like to investigate them further :)

    Kind regards
    Christian Aarø Rasmussen

  23. It seems to be working fine now. WordPress stores all the images in Amazon’s S3, so there’s not much I can do about it.

  24. Pingback: Napolux

  25. Pingback: Perfect Blogger

  26. Pingback: Good Idea, Bad Idea

  27. Pingback: Top Posts 2008

  28. Pingback: Actualización de CodeIgniter — Sanbor

  29. Pingback: iWeb Blog

  30. Excellent! Handy info which will give better understanding of Frameworks.. This is missing even in Framework docs.. I wonder how u get all these..?

  31. dont you have troubles when compiling the image with your RAM? my cmd always breaks -> “out of memory” when i want to compile the picture

  32. Pingback: Why I have settled for CodeIgniter « Thus Spaketh Idd Salim

  33. Pingback: Cool Create Blog Header images

  34. Pingback: Inclued graph for helloworld in TGIFramework (top-bottom) | iceZone

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s