Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z autoloader PHPExcel
aras785
post 5.09.2013, 13:56:17
Post #1





Grupa: Zarejestrowani
Postów: 859
Pomógł: 177
Dołączył: 29.10.2009

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


Witam. Korzystam z tego https://github.com/aras123/MiniFramework i w jednym kontrolerze chciałem użyć biblioteki phpexcel: http://msdn.microsoft.com/pl-pl/library/od...i-phpexcel.aspx

W akcji normalnie sobie includuje a następnie chce wywołać to wywala błąd ze nie znaleziono klasy: Application/Controller/PHPExcel_IOFactory

Biblioteka phpexcel posiada własny autoloader i on niestety nie działa kiedy wrzucę go do w/w kodu.

Trzymam bibliotekę w głównym folderze w Excel/...


Proszę o pomoc
Go to the top of the page
+Quote Post
buliq
post 5.09.2013, 14:00:32
Post #2





Grupa: Zarejestrowani
Postów: 559
Pomógł: 93
Dołączył: 4.03.2008
Skąd: Olsztyn

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


includuj główny plik PHPExcel a następnie z IOFactory


--------------------
KTOŚ TU PACZY???

Kompedium wiedzy
Go to the top of the page
+Quote Post
aras785
post 5.09.2013, 14:09:11
Post #3





Grupa: Zarejestrowani
Postów: 859
Pomógł: 177
Dołączył: 29.10.2009

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


tak też robię:

  1. require_once 'Lib/Excel/PHPExcel/IOFactory.php';
  2. require_once 'Lib/Excel/PHPExcel.php';
  3. $fileType_raport = PHPExcel_IOFactory::identify($fileName_raport);


I dzieje się co wyżej napisałem

Dokładny komunikat:

Kod
Fatal error: Class 'Application\Controller\PHPExcel_IOFactory' not found in /Application/Controller/TestController.php on line 36


Ten post edytował aras785 5.09.2013, 14:20:39
Go to the top of the page
+Quote Post
buliq
post 5.09.2013, 14:23:55
Post #4





Grupa: Zarejestrowani
Postów: 559
Pomógł: 93
Dołączył: 4.03.2008
Skąd: Olsztyn

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


na odwrót! najpierw PHPExcel


--------------------
KTOŚ TU PACZY???

Kompedium wiedzy
Go to the top of the page
+Quote Post
aras785
post 5.09.2013, 14:31:54
Post #5





Grupa: Zarejestrowani
Postów: 859
Pomógł: 177
Dołączył: 29.10.2009

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


To samo...
Go to the top of the page
+Quote Post
buliq
post 5.09.2013, 14:36:23
Post #6





Grupa: Zarejestrowani
Postów: 559
Pomógł: 93
Dołączył: 4.03.2008
Skąd: Olsztyn

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


odpal realpath('Lib/Excel/PHPExcel/IOFactory.php')
a najlepiej glob(''*', GLOB_ONLYDIR );

Ten post edytował buliq 5.09.2013, 14:37:33


--------------------
KTOŚ TU PACZY???

Kompedium wiedzy
Go to the top of the page
+Quote Post
aras785
post 5.09.2013, 14:48:01
Post #7





Grupa: Zarejestrowani
Postów: 859
Pomógł: 177
Dołączył: 29.10.2009

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


ścieżka się zgadza:

Chodzi o to, autoloader z phpexcel nie rusza.

Kod
realpath('Lib/Excel/PHPExcel/IOFactory.php') - Lib/Excel/PHPExcel/IOFactory.php


// ...
Dla testu stworzyłem plik w folderze Excel o nazwie: test.php

i w nim klasę Cos


Następnie include do kontrolera i błąd jest taki sam:

Kod
Fatal error: Class 'Application\Controller\Cos' not found in /Application/Controller/TestController.php on line 25


Ten post edytował aras785 5.09.2013, 14:48:16
Go to the top of the page
+Quote Post
buliq
post 5.09.2013, 14:48:55
Post #8





Grupa: Zarejestrowani
Postów: 559
Pomógł: 93
Dołączył: 4.03.2008
Skąd: Olsztyn

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


W autoloaderze PHPExcel masz metodę register, zobacz czy się uruchamia.
Jaka wersja PHP?


--------------------
KTOŚ TU PACZY???

Kompedium wiedzy
Go to the top of the page
+Quote Post
aras785
post 5.09.2013, 14:51:40
Post #9





Grupa: Zarejestrowani
Postów: 859
Pomógł: 177
Dołączył: 29.10.2009

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


Wolałbym się skupić na tym plik test.php i klasie Cos bo błąd jest taki sam. Wersja php 5.4

Może to wina namespace i moge autoloader w index.php??

może namespace?

Ten post edytował aras785 5.09.2013, 14:54:39
Go to the top of the page
+Quote Post
buliq
post 5.09.2013, 15:03:37
Post #10





Grupa: Zarejestrowani
Postów: 559
Pomógł: 93
Dołączył: 4.03.2008
Skąd: Olsztyn

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


Jasne ... namespace jest inne niż \ ? to dodaj do wywołania \ żeby powiedzieć że to jest w głównym namespace.


--------------------
KTOŚ TU PACZY???

Kompedium wiedzy
Go to the top of the page
+Quote Post
aras785
post 5.09.2013, 21:23:34
Post #11





Grupa: Zarejestrowani
Postów: 859
Pomógł: 177
Dołączył: 29.10.2009

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


Miałem namespace Application\Controller
Zmieniłem na \Application\Controller i wywaliło błąd:

Kod
Fatal error: Undefined constant 'Application\Controller' in /Application/Controller/ToolsController.php on line 2


Mistrzowie ktoś pomoże? smile.gif

?

dodam jeszcze że zamiast __autoload wykorzystałem spl_autoload_register('moj_autoloader') i później w funkcji przed include biblioteki PHPExcel użyłem: spl_autoload_unregister('moj_autoloader') ale i to nic nie dało...
Go to the top of the page
+Quote Post
Spawnm
post 5.09.2013, 22:09:19
Post #12





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Jeśli tworzysz obiekt w namespace controller to z automatu uznaje że klasa też jest w tej przestrzeni, czyli próbuje załadować
Application\Controller\PHPExcel_IOFactory
Unikniesz tego dając: \PHPExcel_IOFactory::identify($fileName_raport);
Go to the top of the page
+Quote Post
aras785
post 5.09.2013, 22:51:02
Post #13





Grupa: Zarejestrowani
Postów: 859
Pomógł: 177
Dołączył: 29.10.2009

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


Dziękuję bardzo!! Pozdrawiam serdecznie smile.gif
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: 25.04.2024 - 11:12