Желая удостовериться я использую классы правильно. Основной сценарий принимает это от пользователя:
1. month
2. year
3. the type of event they want to find (microsoft or linux)
Чтобы программа нашла событие Microsoft, она должна выполнить регулярное выражение: '(идентификатор =) + [0-9] +', Чтобы программа нашла событие Linux, это должно выполнить регулярное выражение: '(идентификатор =) + [A-F] +'
Создание класса Событий кажется логическим способом организовать код. Я не хочу отправлять необходимое регулярное выражение в класс из основного сценария, если это возможно. Я хочу сказать класс событий, если это - Microsoft или событие Linux, и позвольте классу возвратить обработанные данные на основе переменных, которые предопределены в классе для каждого типа события.
У меня есть существующий код, записанный как:
class Events
{
var $month;
var $year;
var $event_identifier_expression;
public function events($month, $year)
{
$this->month = $month;
$this->year = $year;
return $this->event_identifier_expression.$month.$year;
}
}
Я хочу использовать что-то как несколько статических вспомогательных методов в классе Событий вместо этого. Если я изменю существующий код на код ниже, то он позволит мне называть microsoft_events и linux_events независимо снаружи класса, и этот корректный путь состоит в том, чтобы создать класс? (пример кода для того, чтобы вызвать статические функции снаружи класса ценится):
class Events
{
public function __construct()
{var $month;
var $year;
var $event_identifier_expression;
}
public static function microsoft_events($month, $year)
{
$this->month = $month;
$this->year = $year;
$this->event_identifier_expression = '(ID=)+[0-9]+';
return $this->event_identifier_expression.$month.$year;
}
public static function linux_events($month, $year)
{
$this->month = $month;
$this->year = $year;
$this->event_identifier_expression = '(ID=)+[A-F]+';
return $this->event_identifier_expression.$month.$year;
}
}