Buffistas Building a Better Board
Do you have problems, concerns or recommendations about the technical side of the Phoenix? Air them here. Compliments also welcome.
To-do list
Either works, having two separate functions is easier, unless PHP provides some wait of returning two separate return values to a single function.
in C++, it might be
pair<bool,string> parse(const string& formContent);
but I don't know how to do that in PHP.
When I get back home I'm going to learn how to use PHP. Maybe I'll take on one of those new features people want as a learning exercise.
having two separate functions is easier
That makes sense, but also means the whole routine has to be run again, just to get a true or false value.
unless PHP provides some wait of returning two separate return values to a single function
I don't see why not. You can return more than one thing, surely? Now I'm not sure. I'll go and check.
The simplest thing to do would be to return an array.
I just about got there in another window.
I'm trying to return an array with either "true", "false" or "error" as the first arg, and the fixed content as the second.
OK have a look at this page: [link] which returns
- the fixed content and a message to say it needed fixing,
- unfixed content with a message to say it didn't, or
- an error, of which there is only one type, "no content found to parse".
John, looks good.
Here's what we should do for extra safety: run this function over every message already in the database, and log any that come back different. There should only be a small number of them. Someone should look at each one that comes back different and decide if it's a problem in the message in the database or a problem with the tag closer.
If the tag closer works correctly on all the old messages, I doubt it will fail on the new ones.
I've turned the whole thing into a function in this iteration by the way, so that you can just go
$results = array();
$results = parse_html($formcontent);
so what more do I need to do to make it OO?
I do
class Parser {
function parse_html(){
[code code code]
}
}
then call on it with
$sweetLumpyParsingMinion = new Parser;
$sweetLumpyParsingMinion->parse_html($post);
or something like that?
If I only have one function, it seems like overkill.
The structure for the code to date is that if there's no associated data structure, the function just goes in a general file. However, this will be applied to posts, right? So it would be a method of the post class.
If I only have one function, it seems like overkill.
Yep. Unless you're using global variables for state. In that case, a class is better style, since you can store the state as member variables.
Also, on edit, do what ita said. Although I wonder if it's worthwhile to keep it as a separate class/function, in order to keep the post class from growing too complex.
Aha, that makes more sense. [edit: ita that is, not that Rob didn't make sense too...] So you can just bung it in with all the other functions and call it.
I don't know what my block is with the OO thing. I just don't
see
it in my head.