On 08/04/12 22:49, Daniel Friesen wrote:
- The project needs a good database system. I copied our database
classes in but never got to using them. I'm isolating all database stuff into some model classes so different database handing can be swapped in. Anyone who feels up to it can adapt our database code to work as a framework for the review system.
I think it would be easier with our classes. Too much fetch()s in ProjectModel.php
Someone would need to adapt the classes to work outside MW. I started using Mysqli and prepared statements since it's an easy way to get the database stuff out of the way right away.
I think they work. You do:
$conf = array( 'host' => ..., 'user' => ..., 'pass'=> ..., 'dbname' =>..., 'tableprefix'=> ... ) $db = Database::factory( 'mysql', $conf );
And you have a perfectly working Database object.
Or if you prefer something much more lightweight, https://fisheye.toolserver.org/browse/erfgoed/api/includes/Database.php?hb=t... is a Database class which aims to provide a similar interface to ours.
- Right now I'm implementing git handling using proc_open to interact
with git's porcelain and plumbing commands. Anyone who feels up to the task is free to implement a PHP extension for interfacing with git we can swap over to using.
Please, remove the usage of __call() there. Make a different function for each one, even if they're going to be dummy ones right now. This way we can easily replace them with real implementations instead of wondering which ones are called by the magic.
Drop ShellGit entirely and make Git the only class?
No, I mean: function diff() { return call_user_func_array( array( $this->git, __METHOD__ ), get_func_args() ); }
function show() { return call_user_func_array( array( $this->git, __METHOD__ ), get_func_args() ); }
etc.
(still, I think ShellGit misses a __call and won't work right now)