Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Symfony] Problem z użyciem bibliotek obcych dostawców, (PHPExcel)
dogenkigen
post 27.06.2011, 19:59:12
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 6.04.2009

Ostrzeżenie: (0%)
-----


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ę ; ]
Go to the top of the page
+Quote Post
destroyerr
post 27.06.2011, 20:05:54
Post #2





Grupa: Zarejestrowani
Postów: 879
Pomógł: 189
Dołączył: 14.06.2006
Skąd: Bytom

Ostrzeżenie: (0%)
-----


Możesz zrezygnować z podkreślenia przy definiowaniu prefixu albo ręcznie załadować plik z tą jedną klasą.
Go to the top of the page
+Quote Post
dogenkigen
post 27.06.2011, 21:28:08
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 6.04.2009

Ostrzeżenie: (0%)
-----


Niestety wyrzucenie podkreślenia dalej nic nie daje. Ręcznie też nie chcę ładować bo potrzebuje całej biblioteki
Go to the top of the page
+Quote Post
LBO
post 27.06.2011, 21:49:00
Post #4





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Pokaż autoload.php
Go to the top of the page
+Quote Post
destroyerr
post 27.06.2011, 21:49:44
Post #5





Grupa: Zarejestrowani
Postów: 879
Pomógł: 189
Dołączył: 14.06.2006
Skąd: Bytom

Ostrzeżenie: (0%)
-----


Ścieżkę masz na pewno dobrą?
Go to the top of the page
+Quote Post
dogenkigen
post 27.06.2011, 22:03:02
Post #6





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 6.04.2009

Ostrzeżenie: (0%)
-----


ś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');
Go to the top of the page
+Quote Post
LBO
post 27.06.2011, 23:06:24
Post #7





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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.

Ten post edytował LBO 27.06.2011, 23:18:06
Go to the top of the page
+Quote Post
dogenkigen
post 28.06.2011, 09:06:14
Post #8





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 6.04.2009

Ostrzeżenie: (0%)
-----


Ok czeski błąd z mojej strony
Cytat
# chmod -R 777 ./vendor/phpexcel

załatwiło sprawę. Dziękuję za pomoc ; ]

Ten post edytował dogenkigen 28.06.2011, 09:06:43
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 12:02