PHP bir OOP uygulama tasarlarken.

0 Cevap php

Ben PHP OOP bir acemi değilim. Ben nasıl bir uygulama bu tür yapı olabilir almak için çalışıyorum. Bu uygulama yaklaşık 100 farklı web siteleri kazımak içindir.

Ben tüm farklı web siteleri için geneldir yöntemlerini işleyen bir ana sınıfı, "Hurda" var, ve ben kazıma kulüpler web sitesinin belirli yönlerini ele için klasör "Scripts" içimde sınıfları var. Ben harici kütüphaneleri dahil etmek "Lib" denir başka bir klasör var.

Bana görsel açıklayayım:

Ben bu dosya şema var:

- Scrap.php
+ Scripts
               - Google.php
               - Yahoo.php
               - Stackoverflow.php
+ Lib
     + libScrap
               - LIB_parse.php
     + phpQuery
               - phpQuery.php
               - others files and folder...

Scrap.php aşağıdaki içerir:

<?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!
    }

}
?>

Ve klasör "Scripts" içimde bu gibi dosyaları olacak:

<?php
require('../Scrap.php');

class Yahoo extends Scrap {

    public function doSomething() {
        // do things!
    }

}
?>

End not: Ben web Hurda örneğini / klasör "Scripts" oluşturulan tüm sınıfları aramak gerekir. Benim şüphe yaklaşık 100 sınıfları örneğini için en iyi yöntem hakkında.

Bana bu tasarımı nasıl bazı ipuçları verebilir.

Saygılarımızla,

Maalesef benim kötü İngilizce.

0 Cevap