Krzysztof Biernacki

Krzysztof Biernacki programista PHP

Temat: [sf1.4] Własny validator - problem z załadowaniem klasy

Witam.
Skorzystałem z niniejszego tutoriala (http://www.kamiladryjanek.com/2011/10/symfony-1-4-sfim..., który krok po kroku pokazuje jak użyć własnego validatora do sprawdzania wymiarów zdjęć.
Przy próbie jego implementacji w moim projekcie napotkałem na problem. Dostaję monit postaci:

Class 'sfImageFileValidator' not found in ...


Plik sfImageFileValidator.class.php "wrzuciłem" do katalogu lib\vendor\symfony\lib\validator.

Zaś w pliku lib\form\BackendEmbedImagevideoForm.class.php wywołuję validator w ten sposób:


$this->validatorSchema['file'] = new sfImageFileValidator(array(
'mime_types' => 'web_images',
'max_size' => 1000000,
'min_height' => '640',
'min_width' => '480',
'path' => sfConfig::get('app_gallery_thumbs_dir'),
'required' => false
), array(
'min_height' => '',
'min_width' => 'Wymiar zdjęcia jest zbyt mały. Minimum to %min_width% px.',
'max_size' => 'Maksymalny rozmiar pliku graficznego wynosi 1 MB.',
'mime_types' => 'Nieprawidłowy format graficzny pliku. Obsługiwane formaty - JPG/JPEG, PNG, GIF.'
));


Czy ktoś z Was ma jakiś pomysł, gdzie szukać przyczyny powyższego błędu? Poddaję się na chwilę obecną... Byłbym wdzięczny za pomoc.
Uprzedzając pytania:
symfony cc
wykonywałem nie raz ;)
Krzysztof N.

Krzysztof N. CEO. Aplikacje
internetowe i
mobilne. Symfony,
Zend.

Temat: [sf1.4] Własny validator - problem z załadowaniem klasy

Krzysztof Biernacki:
Skorzystałem z niniejszego tutoriala (http://www.kamiladryjanek.com/2011/10/symfony-1-4-sfim..., który krok po kroku pokazuje jak użyć własnego validatora do sprawdzania wymiarów zdjęć.
Przy próbie jego implementacji w moim projekcie napotkałem na problem. Dostaję monit postaci:
Class 'sfImageFileValidator' not found in ...


Plik sfImageFileValidator.class.php "wrzuciłem" do katalogu lib\vendor\symfony\lib\validator.
Próbowałeś umieścić plik sfImageFileValidator.class.php w katalogu /lib lub utworzyć katalog /lib/validator i w nim go umieścić?
Krzysztof Biernacki

Krzysztof Biernacki programista PHP

Temat: [sf1.4] Własny validator - problem z załadowaniem klasy

Próbowałem różnych kombinacji z lokalizacją pliku sfImageFileValidator.class.php (umieszczałem go zarówno w katalogu apps/backend/lib, apps/backend/lib/validator, lib, lib/validator). Niestety, bez oczekiwanych rezultatów. Z pozoru trywialna rzecz, a potrafi człowieka wyprowadzić z równowagi, gdy dodatkowo gonią terminy związane z finalizacją aplikacji. Ktoś jeszcze rzuci okiem na powyższy problem i podpowie, co z tym fantem zrobić?

EDIT:
Na chwilę obecną problem rozwiązałem w nieco "mało elegancki sposób". Klasę z własnym validatorem umieściłem w lib. Natomiast w pliku BackendEmbedImagevideoForm.class.php dopisałem:
require_once '../lib/sfImageFileValidator.class.php';
Teraz "własny validator" (sfImageFileValidator) jest "widziany" przez mechanizmy Symfony. Gdyby ktoś znał przyczynę problemów z automatycznym ładowaniem klas validatorów "tworzonych z palca", proszony jest o stosowne wyjaśnienie na łamach tego topiku. A tymczasem dzięki za zainteresowanie tematem.Krzysztof Biernacki edytował(a) ten post dnia 27.11.11 o godzinie 14:25

konto usunięte

Temat: [sf1.4] Własny validator - problem z załadowaniem klasy

spróbuj umieścić ten plik w libie projektu, np lib/validator i nazwac go "sfImageFileValidator.php", a nie "sfImageFileValidator.class.php". Ja nigdy nie miałem problemów z doczytywaniem własnych klas przez symfonię, a używam ich dużo, natomiast nigdy w nazewnictwie nie dodaję .class.php
Krzysztof N.

Krzysztof N. CEO. Aplikacje
internetowe i
mobilne. Symfony,
Zend.

Temat: [sf1.4] Własny validator - problem z załadowaniem klasy

Michał Majewski:
spróbuj umieścić ten plik w libie projektu, np lib/validator i nazwac go "sfImageFileValidator.php", a nie "sfImageFileValidator.class.php"
Spróbuj tak wykonać, ale nie wydaje się to być konieczne, ponieważ mam klasy walidatorów w katalogu /lib/validator, pliki zawierają w nazwie słowo "class" i walidatory są widoczne, ładowane.

Ponadto zrobiłem test. Dodałem plik /lib/validator/sfValidatorTest.class.php z taką zawartością:
<?php
class sfValidatorTest extends sfValidatorString {
//...
}
Wywołałem go w ten sposób w klasie formularza w metodzie configure():
$this->setValidator('username', new sfValidatorAnd(array(
new sfValidatorTest()
)));
Został wczytany poprawnie.Krzysztof N. edytował(a) ten post dnia 27.11.11 o godzinie 16:33

Następna dyskusja:

[sf1.4]Modul Test - problem...




Wyślij zaproszenie do