2014-11-30 3 views
0

Я запускаю проект на symfony (2.5.7) с сонатой (2.3). Если я запускаю его под Ubuntu с apache2 и php, нет проблем с правильной обработкой форм и всех остальных частей symfony. Но я хочу иметь код в Windows с возможностью запуска сценариев bash, которые выполняют задание, для правильного развертывания проекта. Вот почему я создал Cygwin с cygserver и apache и php. Мне удалось запустить свой проект на Apache для Cygwin, но каждый раз, когда я открываю форму редактирования я получаю ошибку так:Symfony - соната formBuilder падает в среде Cygwin

The name "s547b06c97e7c79.42607283" contains illegal characters. Names should start with a letter, digit or underscore and only contain letters, digits, numbers, underscores ("_"), hyphens ("-") and colons (":"). 
500 Internal Server Error - InvalidArgumentException 

И те 2 последние строки из трассировки стека:

2. at FormConfigBuilder ::validateName ('s547b0ee70b0ac5.07768096') 
in /cygdrive/c/xampp/htdocs/wzp/vendor/symfony/symfony/src/Symfony/Component/Form/FormConfigBuilder.php at line 193 
3. at FormConfigBuilder ->__construct ('s547b0ee70b0ac5.07768096', 'Backend\PoiBundle\Entity\Obiektydziedzictwa', object(EventDispatcher), array('block_name' => null, 'disabled' => false, 'label' => null, 'attr' => array(), 'translation_domain' => null, 'auto_initialize' => true, 'empty_data' => object(Closure), 'trim' => true, 'required' => true, 'read_only' => false, 'max_length' => null, 'pattern' => null, 'property_path' => null, 'mapped' => true, 'by_reference' => true, 'error_bubbling' => true, 'label_attr' => array(), 'virtual' => null, 'inherit_data' => false, 'compound' => true, 'method' => 'POST', 'action' => '', 'post_max_size_message' => 'The uploaded file was too large. Please try to upload a smaller file.', 'validation_groups' => null, 'error_mapping' => array(), 'constraints' => array(), 'cascade_validation' => false, 'invalid_message' => 'This value is not valid.', 'invalid_message_parameters' => array(), 'extra_fields_message' => 'This form should not contain extra fields.', 'csrf_protection' => true, 'csrf_field_name' => '_token', 'csrf_message' => 'The CSRF token is invalid. Please try to resubmit the form.', 'csrf_token_manager' => object(CsrfProviderAdapter), 'csrf_token_id' => null, 'csrf_provider' => object(CsrfTokenManagerAdapter), 'intention' => null, 'sonata_admin' => null, 'sonata_field_description' => null, 'label_render' => true, 'sonata_help' => null, 'horizontal_label_class' => '', 'horizontal_label_offset_class' => '', 'horizontal_input_wrapper_class' => '', 'data_class' => 'Backend\PoiBundle\Entity\Obiektydziedzictwa')) 
in /cygdrive/c/xampp/htdocs/wzp/vendor/symfony/symfony/src/Symfony/Component/Form/FormBuilder.php at line 51 

В I сказал ранее, нет проблем с запуском такой функции в моем приложении на ubuntu. Cygwin размещен на Windows 7 64-разрядный

Я не настроил php.ini, несмотря на увеличение memory_limit и установку date.timezone.

Theese мои PHP модули:

bz2.ini   ctype.ini 
curl.ini   gd.ini   gmp.ini   gv.ini 
iconv.ini  intl.ini   json.ini   mysql.ini 
mysqli.ini  pdo_dblib.ini pdo_mysql.ini pdo_pgsql.ini 
pdo_sqlite.ini pgsql.ini  phpmodules  pspell.ini 
readline.ini  simplexml.ini sqlite3.ini  tidy.ini 
xsl.ini   zlib.ini 

Если я запускаю тот же проект с XAMPP на окнах тоже нет такой проблемы, как описано выше.

Кто-нибудь запускает проект symfony под apache + php на cygwin? Любая помощь приветствуется.

EDIT Если я запускаю Cygwin 32-бит (на той же Windows 7 64-разрядная версия) Я не получаю эту ошибку. Но возникла другая проблема. Каким-то образом соната генерирует пути, как:

C:\path\to\the\file\to\be\loaded/file.orm.xml 

вместо

/cygdrive/c/path/to/the/file/to/be/loaded/file.orm.xml 

Что является причиной, почему я получаю сообщение об ошибке: There is no such file.

ответ

0

Я выяснил, что проблема заключается в PHP для cygwin, который работает под Windows 7. PHP генерирует ошибки с функциями файловой системы. Согласно документации PHP некоторые функции, такие как symlink, должны работать как основная функциональность в PHP 5.3 для Windows, но это зависит от версии Windows.

В Windows 8/8.1 это работает как шарм.