views:

1670

answers:

10

I'd really like to spend more time writing and learning about PHP, so I'd like to delve into the code of some well-written open source projects, and possibly contribute if I became familiar enough with the code. I know everyone says you should pick something you use or enjoy, but all of the open source PHP applications I've used have been horrendous (like osCommerce) or way too mature and large to need me (like WordPress). Sooo folks, do any of you know of or have a small to medium sized open source app written on PHP that I could study and perhaps help contribute to? Thanks!

+1  A: 

2 well-established projects that just about everyone has run across:

As for your issue with project maturity, even mature projects can use help. And, if nothing else, you should still be able to learn a lot from them.

Jonathan Lonowski
I think MediaWiki is large and phpBB is not the kind of code naeblis wants because he looks for well-written code.
tharkun
I have been unfortunate to work with phpBB code and it's far from good as in well-written-as-an-example-for-newbies.
macbirdie
+4  A: 

You might want to look at SilverStripe, they are not large yet but very promising, very well-written and very well organised too. And they are definitely looking for developers.

tharkun
Man am I glad I found this post, this is the first I've heard of SS but it looks awesome! Going to be dissecting tonight and possibly scheduling in some contributions/donations.
Adam
Silverstripe is awesome. V well written and easy to understand/extend.
unochild
+4  A: 

Drupal

pros

  • good community
  • decent documentation (see cons)
  • start small (modules/themes) or big (drupal core patches)

cons

  • not really object oriented (see)
  • documentation can be a bit sparse at times

Kohana

pros

  • object oriented
  • helping a framework helps yourself!

cons

  • decent sized project, may be hard to just jump in
Owen
Tangentially, if you do get involved with Drupal there may be job opportunities: see http://acquia.com/ and http://www.startuply.com/Companies/Acquia_106.aspx
Greg Case
+3  A: 

You are right to be horrified once you see something like osCommerce.

Personally I can't recommend Drupal, even though there is a large community that supports it. It has a pretty old fashioned code structure and file-layout. Some parts of it's code is excellent, but in whole it kind of is very hack-ish.

I can recommend code igniter whole-heartedly. It's stable, clean and fast and with a good file-structure and a nice, loose implementation of MVC structure. - the biggest plus and probably very appropriate for you, is that it's code is really "pretty" :-)

Textpattern is also fine but a little hard to read in a single go.

Joomla is another good example but it is very varied, depending on what component/include file you are looking at.

arnorhs
+1  A: 

"Code Igniter" framework is a great project to get involved with. Community is still 'small' enough to accept submissions readily from forum users, and the community overall is a lot of fun to be around. Since it is just a framework though, you will either have to get involved with a CI based project (ala FreakAuth, CI-CMS, etc.), or you'll need a project/use of your own to use CI in a way that you will discover areas of improvement or bug fixes that other members of the community have not discovered yet.

Being able to recognize a PHP project that is full of spaghetti shows potential of a great developer, and it you're feeling extra adventurous, maybe doing a re-write of a piece of say, osCommerce, could be your introduction to the php scene.

The big things you want are experience and exposure, so get involved and start making a difference (for the good!)

Adam
A: 

As an example of really well-written PHP code I would go for Zend Framework. It's not a "product" per-se, but a really nice, modern PHP design, though a bit advanced at times.

macbirdie
And large. The once or twice I've handled sites using Zend it's always struck me a like using a very large hammer to hit a very small nut - at least with your run-of-the-mill small/medium application site
Cruachan
A: 

I can second the suggestions for CodeIgniter. The code is well-written and the community still has a... well, community feel to it!

mjacob
+1  A: 

I will third the CodeIgniter suggestion and also recommend checking out CakePHP and Symfony if you're interested in other MVC frameworks.

George Mandis
A: 

The only one I'm using (I'm definitely not a PHP fan) with great happiness is Gallery2. Great photo gallery software, full of features, reasonnably fast and mostly free of the common security bugs.

Keltia
A: 

My favourite one is the PEAR Spreadsheet_Excel_Writer package. Spreadsheet manipulation is one of those boring programming tasks that nobody is motivated to do in his spare time so I think it is quite an achievement that some poeple wrote some open source library to export Excel spreadsheets, especially since even for .NET, there aren't many good free tools to do that stuff.

I haven't looked at the source code but I'm sure the people who wrote it are professionals because they didn't write something they found interesting personally; they wrote something they knew other people will need and use. And that's sort of professional.

DrJokepu