PHPExcel конфликт autoload

kvf77

Red Devil
Подскажите, хочу заюзать эту библиотеку. В моем проекте есть __autoload, собственно, PHPExcel имеет таковой и у себя. Мой обработчик, вестимо, загружен раньше и перехватывает все обращения PHPExcel. Как быть?
 

kvf77

Red Devil
хм, это сложно, он нужен только один раз в одном месте
 

kvf77

Red Devil
ну ок, переделал свой автолоад - однако он всеравно перехватывает все обращения PHPExcel. Как быть?
 

kvf77

Red Devil
Сделал так:

spl_autoload_unregister('KFAutoload');

:::::::::::::::::::::::::::::::::::

spl_autoload_register('KFAutoload');

Нормальный вариант?
 

MiksIr

miksir@home:~$
Да, иначе не получится, PHPExcel криво написан в этой области.
Можно еще разрегистрить PHPExcel после инклуда, а потом руками уже зарегистрировать с флагом append=true.
 

AmdY

Пью пиво
Команда форума
kvf77
так твой автолод в случае неудачи джолжен возвращать false, после этого будет отрабатывать другой автолдодер или если закончились, то ошибка - класс не найден.
я так понимаю у твой автолордер кидает ошибку и останавливает поиск, это неправильная реакция.
 

kvf77

Red Devil
Почему реакция не правильная? Нормальная - там ошибка - класс не найден. А при твоем подходе я никогда не узнаю, что случилось.
 

Ragazzo

TDD interested
kvf77
Самый последний автолоад итак сделает ошибку, иначе у тебя получается ситуация когда, никогда не сработают остальные автолоады.
 

fixxxer

К.О.
Партнер клуба
Почему реакция не правильная? Нормальная - там ошибка - класс не найден. А при твоем подходе я никогда не узнаю, что случилось.
Да, конечно! (с) Вовочка

fixxxer@mbp ~/tmp$ cat 1.php
<?php

function __autoload($class) {
return false;
}

new Foo;

fixxxer@mbp ~/tmp$ php 1.php

Fatal error: Class 'Foo' not found in /Users/fixxxer/tmp/1.php on line 7

Другое дело, что две функции autoload не сделаешь, а в spl можно зарегать сколько надо.
 

AmdY

Пью пиво
Команда форума
Лучше всего прикрутить к проекту компосер и пользоваться его автолодером, он умеет грузить всё и по неймспейсам и по пиарстайлу и просто карту классов или препендить файлы.
 

fixxxer

К.О.
Партнер клуба
Да ты идеалист! И много ты композеров к легаси коду прикручивал? ;)

Если бы мне было месяц нехрен делать, я бы вот у себя все переписал, конечно, было бы и PSR-0, и композеры, и трейты, и куча всяких идей которые давно придуманы...

Когда это делать то =)
 

fixxxer

К.О.
Партнер клуба
если на все правила индивидуальные описывать, весь профит теряется, имхо
 

AmdY

Пью пиво
Команда форума
Ну, в твоём случае тебе однозначно виднее.

Я на прошлом проекте так наелся кривого деплоймента, что сейчас дую на на мороженное, чтобы не обжечься.
 
Сверху