I want to contribute to CodeIgniter!

#1
[eluser]solid9[/eluser]
Hi guys.

As a CodeIgniter user.
I wanted to help improve this great framework.
But I don't know how the inner of CI works.
Any tutorial?, or Documents?,
or anyone would like to explain to me,
how the inner CI engine works?
I know how to fork it from github and push it back.

Thanks again in advanced.

#2
[eluser]PhilTem[/eluser]
Just perform this function in your head:


Code:
function understand_codeigniter()
{
  $index = include('index.php');
  
  for ( $line = 1; ! end_of_codeigniter($line); $line++ )
  {
    read_and_understand_line($index[$line]);
  }
}

function read_and_understand_line($line)
{
  if ( $other_file = line_mentions_other_file($line) )
  {
    open($other_file);
    
    for ( $line = 1; ! end_of_codeigniter($line); $line++ )
    {
      read_and_understand_line($other_file[$line]);
    }
  }
}

function line_mentions_other_file($line)
{
  $matches = array();
  
  if ( regexp('(include|require)((\_once)?\(.+\))', $line, $matches) )
  {
    return $matches[0];
  }
  
  return FALSE;
}

It's a mixture of PHP and abstract programming language. You'd better not execute that, it will not work.

But in other words: You want to understand CI? Then open index.php and read and understand every single line of it. Wherever index.php mentions another file, open this file and read and understand it. Do this until either you fully understood CI or you're at the end of files to look at. If the latter happens first, you should start all over again Wink

Sounds harsh, but that's how I learned CI and what a lot of other people answer for the same question. The best tutorial can only teach you how to use CI, but to understand CI you need to look at the source - which fortunately is open-source Wink

#3
[eluser]solid9[/eluser]
@philtem

I thought there is a documentation that will explain to me the SHORTCUT.
Anyways I will do what you said.

By the way do you also contribute in github phil?

#4
[eluser]Narf[/eluser]
There is an application flow diagram in the docs that might help you: http://ellislab.com/codeigniter/user-gui...pflow.html
Also, there's a contribution guide on GitHub, although not related to the code logic: https://github.com/EllisLab/CodeIgniter/...ibuting.md

For the rest you will need to go through the code, there isn't any shortcut.


Digg   Delicious   Reddit   Facebook   Twitter   StumbleUpon  


  Theme © 2014 iAndrew  
Powered By MyBB, © 2002-2020 MyBB Group.