manolis940 Δημοσ. 29 Οκτωβρίου 2018 Δημοσ. 29 Οκτωβρίου 2018 (επεξεργασμένο) Γεια σας. Είμαι νέος στο Yii και προσπαθώ να μάθω να το χειρίζομαι. Θέλω να φτιάξω ένα parser* για RSS Feeds, δυστυχώς όμως μέσα στα extensions δεν βρήκα κάποιον που να δουλεύει σωστά και να είναι compatible με όλους τους τύπους των feeds. Κατάφερα να φτιάξω ένα parser με το SimplePie . Δουλεύει άψογα και θα ήθελα να χρησιμοποιήσω το SimplePie στο Yii. O parser που έφτιαξα: Spoiler <?php //autoloader του SimplePie include_once 'autoloader.php'; $url = 'http://www.catanacomics.com/rss'; $feed = new SimplePie(); $feed->set_feed_url($url); $feed->init(); $items = $feed->get_Items(1); ?> <ul> <?php $i=0; foreach ($items as $item) { $description = $item->get_description(); foreach ($descriptions as $description) { echo'<li><pre>'.$description.'</pre></li>'; }*/ $i++; } ?> </ul> Για να εισάγω την βιβλιοθήκη στο Yii2 ακολούθησα αυτόν τον οδηγό. Έκανα τα παρακάτω βήματα 1.Έβαλα το simplepie στο φάκελο vendror. 2.Έβαλα στο entry script(basepath/backend/web/index.php) τον autoloader του simple pie όπως φαίνεται στο spoiller παρακάτω: Spoiler <?php defined('YII_DEBUG') or define('YII_DEBUG', true); defined('YII_ENV') or define('YII_ENV', 'dev'); require __DIR__ . '/../../vendor/simplepie-1.5/autoloader.php'; require __DIR__ . '/../../vendor/autoload.php'; require __DIR__ . '/../../vendor/yiisoft/yii2/Yii.php'; require __DIR__ . '/../../common/config/bootstrap.php'; require __DIR__ . '/../config/bootstrap.php'; $config = yii\helpers\ArrayHelper::merge( require __DIR__ . '/../../common/config/main.php', require __DIR__ . '/../../common/config/main-local.php', require __DIR__ . '/../config/main.php', require __DIR__ . '/../config/main-local.php' ); (new yii\web\Application($config))->run(); 3.Τέλος μέσα σε μια κλάση όπου βρίσκεται στο basepath/backend/components προσπάθησα να εισάγω μία κλάση που θα φτιάχνει το αντικείμενο μου. class ParserComponent extends Component { .... public function getFeed($feedUrl) { $feed = new SimplePie(); $feed->set_feed_url($feedUrl); $feed->init(); return $feed; } ... } Όταν πάω να την χρησιμοποιήσω μου επιστρέφει το παρακάτω Error: Error: Class 'backend\components\SimplePie' not found Αφού θεωρητικά την έκανε autoload, δεν θα έπρεπε να την βρίσκει ; *parser: Εργαλείο που θα κάνει προσπέλαση το feed και θα παίρνει διάφορα στοιχεία από αυτό, όπως για παράδειγμα τον τίτλο, τις εικόνες του κτλ Επεξ/σία 29 Οκτωβρίου 2018 από manolis940
ktf Δημοσ. 29 Οκτωβρίου 2018 Δημοσ. 29 Οκτωβρίου 2018 Μάλλον τα κατάλαβες λίγο στραβά, δεν πειράζει, υπομονή θέλει. Ο τρόπος που προτιμάται για να εισάγεις βιβλιοθήκες από τρίτους είναι να χρησιμοποιήσεις τον https://getcomposer.org Αφότου τον εγκαταστήσεις, βρίσκεις την βιβλιοθήκη που σε ενδιαφέρεις στο https://packagist.org , στην περίπτωσή σου είναι https://packagist.org/packages/simplepie/simplepie Στο directory του Yii2 είτε προσθέτεις χειροκίνητα το dependency στο αρχείο composer.json είτε τρέχεις την εντολή `composer require simplepie/simplepie`. `composer install` στο τέλος. 1
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα