Я новичок в PHP ООП. Я пытаюсь понять, как я могу структурировать такое приложение. Это приложение для чистки около 100 различных веб-сайтов.
У меня есть основной класс "Scrap", который обрабатывает методы, которые являются глобальными для всех различных веб-сайтов, а внутри папки "Scripts" у меня есть классы для обработки определенных аспектов веб-сайта, который я очищаю. У меня есть другая папка, которая называется «Lib» для включения внешних библиотек.
Позвольте мне объяснить визуально:
У меня есть эта схема файла:
- Scrap.php
+ Scripts
- Google.php
- Yahoo.php
- Stackoverflow.php
+ Lib
+ libScrap
- LIB_parse.php
+ phpQuery
- phpQuery.php
- others files and folder...
Scrap.php содержит следующее:
<?php
// Includes
require('/lib/libScrap/LIB_parse.php');
require('/lib/phpQuery/phpQuery.php');
// Testing Scrap
$testing = new Scrap;
$testing->teste = $testing->getPage('http://www.yahoo.com','','off');
echo $testing->teste;
class Scrap {
public function __construct() {
// do things!
}
/*
* This method grabs the entire page(HTML) on given URL
* Ex: $htmlgrab->teste = $htmlgrab->getPage('http://testing.com/ofertas/','','off');
* Returns, the HTML of given URL
*/
public function getPage($site, $proxy, $proxystatus) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
if ($proxystatus == 'on') {
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, TRUE);
curl_setopt($ch, CURLOPT_PROXY, $proxy);
}
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");
curl_setopt($ch, CURLOPT_URL, $site);
ob_start(); // prevent any output
return curl_exec ($ch); // execute the curl command
ob_end_clean(); // stop preventing output
curl_close ($ch);
}
/*
*
*
*/
public function getLinks() {
// do things!
}
/*
* This method grabs the page title.
* Ex: <title>This is the page title</title>
* Returns, "This is the page title"
*/
public function getTitle() {
// do things!
}
}
?>
А внутри папки «Скрипты» у меня будут такие файлы:
<?php
require('../Scrap.php');
class Yahoo extends Scrap {
public function doSomething() {
// do things!
}
}
?>
Конечное примечание: мне нужно вызвать / создать все классы, созданные в папке «Сценарии», чтобы очистить сайты. Я сомневаюсь в том, что лучший способ создать около 100 классов.
Если вы можете дать мне несколько подсказок о том, как спроектировать это.
С наилучшими пожеланиями,
Извините, мой плохой английский.