Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony] Problem z użyciem bibliotek obcych dostawców
Forum PHP.pl > Forum > PHP > Frameworki
dogenkigen
Potrzebuję użyć w projekcie opartym o symfony2 biblioteki PHPExcel. Korzystałem z tej porady
stackoverflow
jednak kiedy próbuje stworzyć obiekt klasy PHPExcel() w jakimś kontrolerze
Kod
$excel = new \PHPExcel();

to wyskakuje mi
Kod
Fatal error: Class 'PHPExcel' not found in /położenie/mojego/kontrolera.php ....

Z góry dziękuję za każdą nawet najdrobniejszą sugestię ; ]
destroyerr
Możesz zrezygnować z podkreślenia przy definiowaniu prefixu albo ręcznie załadować plik z tą jedną klasą.
dogenkigen
Niestety wyrzucenie podkreślenia dalej nic nie daje. Ręcznie też nie chcę ładować bo potrzebuje całej biblioteki
LBO
Pokaż autoload.php
destroyerr
Ścieżkę masz na pewno dobrą?
dogenkigen
ścieżka jest ok

autoload.php
Kod
<?php

use Symfony\Component\ClassLoader\UniversalClassLoader;

$loader = new UniversalClassLoader();
$loader->registerNamespaces(array(
    'Symfony'          => array(__DIR__.'/../vendor/symfony/src', __DIR__.'/../vendor/bundles'),
    'Sensio'           => __DIR__.'/../vendor/bundles',
    'JMS'              => __DIR__.'/../vendor/bundles',
    'Doctrine\\Common' => __DIR__.'/../vendor/doctrine-common/lib',
    'Doctrine\\DBAL'   => __DIR__.'/../vendor/doctrine-dbal/lib',
    'Doctrine'         => __DIR__.'/../vendor/doctrine/lib',
    'Monolog'          => __DIR__.'/../vendor/monolog/src',
    'Assetic'          => __DIR__.'/../vendor/assetic/src',
    'Metadata'         => __DIR__.'/../vendor/metadata/src',
    'Efektivo'         => __DIR__.'/../src',
));
$loader->registerPrefixes(array(
    'Twig_Extensions_' => __DIR__.'/../vendor/twig-extensions/lib',
    'Twig_'            => __DIR__.'/../vendor/twig/lib',
    'PHPExcel_'        => __DIR__.'/../vendor/phpexcel/lib',
));
$loader->registerPrefixFallbacks(array(
    __DIR__.'/../vendor/symfony/src/Symfony/Component/Locale/Resources/stubs',
));
$loader->registerNamespaceFallbacks(array(
    __DIR__.'/../src',
));
$loader->register();

//require_once __DIR__.'/../vendor/phpexcel/lib/PHPExcel/PHPExcel.php';

// Swiftmailer needs a special autoloader to allow
// the lazy loading of the init file (which is expensive)
require_once __DIR__.'/../vendor/swiftmailer/lib/classes/Swift.php';
Swift::registerAutoload(__DIR__.'/../vendor/swiftmailer/lib/swift_init.php');
LBO
Jesteś pewien, że okay?

Sprawdź w którym katalogu masz plik PHPExcel.php i na niego wskaż autoloader.
Jeżeli zwyczajnie wypakowałeś bibliotekę do folderu vendor/phpexcel to będzie to wyglądało mniej więcej tak:

  1. $loader->registerPrefixes(array(
  2. // etc
  3. 'PHPExcel' => __DIR__.'/../vendor/phpexcel/Classes',
  4. ));


ale patrząc na zakomentowany require_once to bardziej będzie tak:

  1. $loader->registerPrefixes(array(
  2. // etc
  3. 'PHPExcel' => __DIR__.'/../vendor/phpexcel/lib/PHPExcel',
  4. ));


edit:
Zmieniłem 'PHPExcel_' na 'PHPExcel'. Jest to wymagane do załadowania klasy PHPExcel.
dogenkigen
Ok czeski błąd z mojej strony
Cytat
# chmod -R 777 ./vendor/phpexcel

załatwiło sprawę. Dziękuję za pomoc ; ]
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.