Installing Sylius with eZ Publish 5 - symfony

I have problems installing Sylius Bundle. Here is the error when i try to access the web site or when i try to update composer :
[RuntimeException]
"Cannot find Doctrine RTEL"
Here is my config :
composer.json
"doctrine/orm": "~2.3",
"friendsofsymfony/user-bundle": "2.0.*#dev",
"sylius/money-bundle": "0.12",
"sylius/order-bundle": "0.12",
"sylius/product-bundle": "0.12",
"sylius/resource-bundle": "0.12",
"sylius/cart-bundle": "0.12"
config.yml
stof_doctrine_extensions:
orm:
default:
timestampable: true
# Sylius
sylius_cart:
resolver: app.cart_item_resolver
classes: ~
sylius_order:
driver: doctrine/orm
classes:
order:
model: Project\EshopBundle\Entity\Order
sylius_money: ~
sylius_product:
driver: doctrine/orm
classes:
product:
model: Project\EshopBundle\Entity\Product
sylius_attribute:
driver: doctrine/orm
sylius_variation:
driver: doctrine/orm
Kernel.php
// Sylius Order Bundle dependencies
new FOS\RestBundle\FOSRestBundle(),
new JMS\SerializerBundle\JMSSerializerBundle($this),
new Stof\DoctrineExtensionsBundle\StofDoctrineExtensionsBundle(),
new Sylius\Bundle\MoneyBundle\SyliusMoneyBundle(),
new Sylius\Bundle\OrderBundle\SyliusOrderBundle(),
// Sylius Ressources Bundle dependencies
new Sylius\Bundle\ResourceBundle\SyliusResourceBundle(),
// Sylius Cart Bundle dependencies
new Sylius\Bundle\CartBundle\SyliusCartBundle(),
// Sylius Product Bundle
new Sylius\Bundle\ProductBundle\SyliusProductBundle(),
new Sylius\Bundle\AttributeBundle\SyliusAttributeBundle(),
new Sylius\Bundle\VariationBundle\SyliusVariationBundle(),
new DoctrineBundle()
eZ Publish version : 2014.11
Thanks.

You have to configure doctrine to enable ORM like this: (example taken from the Symfony Standard Edition)
# Doctrine Configuration
doctrine:
dbal:
driver: pdo_mysql
host: "%database_host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
charset: UTF8
# if using pdo_sqlite as your database driver:
# 1. add the path in parameters.yml
# e.g. database_path: "%kernel.root_dir%/data/data.db3"
# 2. Uncomment database_path in parameters.yml.dist
# 3. Uncomment next line:
# path: "%database_path%"
orm:
auto_generate_proxy_classes: "%kernel.debug%"
auto_mapping: true

Related

sonatabundle installation ApplicationSonataMediaBundle not found

I tried to follow the tutorial installation for SonataBundle tutorial
I change only mapping in this way
doctrine:
dbal:
driver: pdo_mysql
host: '%database_host%'
port: '%database_port%'
dbname: '%database_name%'
user: '%database_user%'
password: '%database_password%'
charset: UTF8
# if using pdo_sqlite as your database driver:
# 1. add the path in parameters.yml
# e.g. database_path: '%kernel.project_dir%/var/data/data.sqlite'
# 2. Uncomment database_path in parameters.yml.dist
# 3. Uncomment next line:
#path: '%database_path%'
types:
json: Sonata\Doctrine\Types\JsonType
orm:
auto_generate_proxy_classes: "%kernel.debug%"
naming_strategy: doctrine.orm.naming_strategy.underscore
auto_mapping: true
mappings:
ApplicationSonataMediaBundle: ~
SonataMediaBundle: ~
the command
php app/console sonata:easy-extends:generate --dest=src SonataMediaBundle
generate in src/Application/Sonata/MediaBundle/ApplicationSonataMediaBundle
but always I get this error :
Class 'Application\Sonata\MediaBundle\ApplicationSonataMediaBundle' not found

Sylius Product Bundle configuration

I'm trying to integrate Sylius Product Bundle into my existing Symfony project. It already has doctrine configured.
This is the error I am getting:
[Symfony\Component\Config\Definition\Exception\InvalidConfigurationException]
The child node "driver" at path "sylius_attribute" must be configured.
Any idea what's causing this? I followed the instruction right off the bat without doing any other installations of sylius.
http://docs.sylius.org/en/latest/bundles/SyliusProductBundle/installation.html
I had to change the doctrine-bundle version in my composer.json file to allow the
composer require "sylius/product-bundle"
to run successfully without errors. I changed the version from 1.2.* to
"doctrine/doctrine-bundle": "1.3.*"
Also after composer installed these guys, i added the following to my config.yml file
sylius_product:
driver: doctrine/orm
classes:
product:
model: Sylius\Bundle\CoreBundle\Model\Product
controller: Sylius\Bundle\CoreBundle\Controller\ProductController
repository: Sylius\Bundle\CoreBundle\Repository\ProductRepository
stof_doctrine_extensions:
default_locale: es_us
translation_fallback: true
orm:
default:
tree: true
Initially I was getting the following error:
[Exception]
Missing parameter sylius.translation.default.mapping. Default translation mapping must be defined!
After a little searching around I added the piece below to the config.yml file
sylius_translation:
default_mapping:
translatable:
field: translations
currentLocale: currentLocale
fallbackLocale: fallbackLocale
translation:
field: translatable
locale: locale
Already existing earlier in my config.yml file was:
doctrine:
dbal:
driver: "%database_driver%"
host: "%database_host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
charset: UTF8
orm:
auto_generate_proxy_classes: "%kernel.debug%"
auto_mapping: true
I didn't change anything in these settings.
What am i doing wrong here or missing? ANy help will be greatly appreciated.
Thanks!
EDIT
I tried adding all the below items:
sylius_attribute:
driver: doctrine/orm
sylius_variation:
driver: doctrine/orm
sylius_archetype:
driver: doctrine/orm
Now I get the following error:
[InvalidArgumentException]
The class sylius.model.product_archetype.class does not exist.
I added the corresponding file to the AppKernel with still no luck!
new Sylius\Bundle\AttributeBundle\SyliusArchetypeBundle(),
and then changed it to:
new Sylius\Bundle\ArchetypeBundle\SyliusArchetypeBundle(),
Setting up Sylius has been quiet stressful so far :(
I've updated the docs for the ProductBundle:
In composer.json you'll need to add these lines:
"require": {
...
"sylius/locale-bundle": "0.13.*",
"sylius/product-bundle": "0.13.*"
...
}
In app/AppKernel.php:
new FOS\RestBundle\FOSRestBundle(),
new JMS\SerializerBundle\JMSSerializerBundle($this),
new Stof\DoctrineExtensionsBundle\StofDoctrineExtensionsBundle(),
new WhiteOctober\PagerfantaBundle\WhiteOctoberPagerfantaBundle(),
new Sylius\Bundle\ArchetypeBundle\SyliusArchetypeBundle(),
new Sylius\Bundle\AttributeBundle\SyliusAttributeBundle(),
new Sylius\Bundle\ProductBundle\SyliusProductBundle(),
new Sylius\Bundle\LocaleBundle\SyliusLocaleBundle(),
new Sylius\Bundle\ResourceBundle\SyliusResourceBundle(),
new Sylius\Bundle\TranslationBundle\SyliusTranslationBundle(),
new Sylius\Bundle\VariationBundle\SyliusVariationBundle(),
new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(),
In config.yml:
parameters:
sylius.locale: "%locale%"
sylius_archetype:
classes:
product:
subject: Sylius\Component\Product\Model\Product
attribute: Sylius\Component\Product\Model\Attribute
option: Sylius\Component\Product\Model\Option
archetype:
model: Sylius\Component\Product\Model\Archetype
repository: Sylius\Bundle\ResourceBundle\Doctrine\ORM\TranslatableEntityRepository
translatable:
targetEntity: Sylius\Component\Product\Model\ArchetypeTranslation
archetype_translation:
model: Sylius\Component\Product\Model\ArchetypeTranslation
sylius_attribute:
driver: doctrine/orm
sylius_product:
driver: doctrine/orm
sylius_locale:
driver: doctrine/orm
sylius_translation:
default_mapping:
translatable:
field: translations
currentLocale: currentLocale
fallbackLocale: fallbackLocale
translation:
field: translatable
locale: locale
sylius_variation:
driver: doctrine/orm
stof_doctrine_extensions:
orm:
default:
sluggable: true
timestampable: true
Now you should be able to run schema update successfully
$ php app/console doctrine:schema:update --dump-sql
If satisfied, execute:
$ php app/console doctrine:schema:update --force
Update: This configuration will break when upgrading to 0.14 (current released version is 0.13).
It wasn't mention on the tutorial you followed but I think it will help you :
https://github.com/Sylius/Sylius-Docs/blob/master/bundles/SyliusAttributeBundle/installation.rst#container-configuration

Sylius, SearchBundle

Search in latest Sylius-standard does not work:
[Syntax Error] line 0, col 92: Error: Expected known function, got 'MATCH'
[1/2] QueryException: select u.itemId, u.tags, u.entity from Sylius\Bundle\SearchBundle\Model\SearchIndex u WHERE MATCH(u.value) AGAINST (:searchTerm) > 0
How to fix?
You need to add the custom function to you doctrine config as in the Sylius app/config/config.yml
doctrine:
...
orm:
dql:
string_functions:
MATCH: Sylius\Bundle\SearchBundle\Extension\Doctrine\MatchAgainstFunction
Here are the steps to get it working :
In app/config/config.yml put in the following lines
doctrine:
dbal:
driver: %sylius.database.driver%
host: %sylius.database.host%
port: %sylius.database.port%
dbname: %sylius.database.name%
user: %sylius.database.user%
password: %sylius.database.password%
charset: UTF8
orm:
auto_generate_proxy_classes: %kernel.debug%
entity_managers:
default:
auto_mapping: true
mappings:
gedmo_loggable:
type: annotation
prefix: Gedmo\Loggable\Entity
dir: "%kernel.root_dir%/../vendor/gedmo/doctrine-extensions/lib/Gedmo/Loggable/Entity"
is_bundle: false
filters:
softdeleteable:
class: Gedmo\SoftDeleteable\Filter\SoftDeleteableFilter
enabled: true
dql:
string_functions:
MATCH: Sylius\Bundle\SearchBundle\Extension\Doctrine\MatchAgainstFunction
In your mysql database look for the table sylius_search_index and check if it has a full index on the value column, if not just run the below command :
ALTER TABLE sylius_search_index ADD FULLTEXT index_name(
value
)
On the console run the following command for your products:
php app/console sylius:search:index
The above command builds a list of search terms for the search in the sylius_search_index table value column.
That should be all !

SQL Server DB Connection with Symfony2 and Doctrine

I'm trying to generate the schema of the database in a SQL Server database, using the following instruction: php app/console doctrine:schema:create.
This is the error message:
Call to undefined function Doctrine\DBAL\Driver\SQLSrv\sqlsrv_connect() in C:\Projects\Project\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\SQLSrvConnection.php
PARAMETERS FILE
parameters:
database_driver: pdo_sqlsrv
database_host: localhost
database_port: 1433
database_name: dbname
database_user: user
database_password: password
CONFIG FILE
doctrine:
dbal:
driver: "%database_driver%"
host: "%database_host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
#charset: UTF8
# if using pdo_sqlite as your database driver, add the path in parameters.yml
# e.g. database_path: "%kernel.root_dir%/data/data.db3"
# path: "%database_path%"
orm:
auto_generate_proxy_classes: "%kernel.debug%"
auto_mapping: true
I guess you have NOT installed php plugin for that

Creating a database using Symfony2 parameters.ini file on Windows 7 machine

My specific question: How can I troubleshoot a failure to create a database
using a Symfony2 parameters.ini file?
This has to do with Windows7 and Symfony2. I am trying to create a database
after configuring Symfony2, and I fail. (Details: I am working on Windows 7
64 bit, xampp 1.7.7 with PHP 5.3.8 and Symfony2 2.0.14).
When I try this from a command line:
php app/console doctrine:database:create
I get this:
Could not create database for connection named <comment>jobeet</comment>
SQLSTATE[28000] [1045] Access denied for user 'root'#'localhost' (using password: YES)
My parameters.ini file looks like this:
[parameters]
database_driver="pdo_mysql"
database_host="localhost"
database_port="3306"
database_name="jobeet"
database_user="root"
database_password="[intentionally left blank]"
mailer_transport="smtp"
mailer_host="localhost"
mailer_user=""
mailer_password=""
locale="en"
secret="[intentionally left blank]"
I can start MySql from the command line (mysqld --console), and get to MySql
as a root user (mysql -p[intentionally left blank] -u root) and create a
database (CREATE DATABASE test;), so I think my server is running and I can
use it.
I suspect the problem with "Access denied for user 'root'#'localhost'" has to
do with it not having the password for MySql root.
If anyone has ever run into this before, and knows what to do, your help
would be much appreciated.
I attempted to GRANT ALL PRIVILEGES with the following:
mysql> grant all privileges on *.* to 'root'#'localhost';
Query OK, 0 rows affected (0.05 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
I'm worried that is says '0 rows affected'. That can't be good.
Here is my config.yml. Plz let me know if you see problems.
imports:
- { resource: parameters.ini }
- { resource: security.yml }
framework:
#esi: ~
#translator: { fallback: %locale% }
secret: %secret%
charset: UTF-8
router: { resource: "%kernel.root_dir%/config/routing.yml" }
form: true
csrf_protection: true
validation: { enable_annotations: true }
templating: { engines: ['twig'] } #assets_version: SomeVersionScheme
session:
default_locale: %locale%
auto_start: true
# Twig Configuration
twig:
debug: %kernel.debug%
strict_variables: %kernel.debug%
# Assetic Configuration
assetic:
debug: %kernel.debug%
use_controller: false
# java: /usr/bin/java
filters:
cssrewrite: ~
# closure:
# jar: %kernel.root_dir%/java/compiler.jar
# yui_css:
# jar: %kernel.root_dir%/java/yuicompressor-2.4.2.jar
# Doctrine Configuration
doctrine:
dbal:
driver: %database_driver%
host: %database_host%
port: %database_port%
dbname: %database_name%
user: %database_user%
password: %database_password%
charset: UTF8
orm:
auto_generate_proxy_classes: %kernel.debug%
auto_mapping: true
# Swiftmailer Configuration
swiftmailer:
transport: %mailer_transport%
host: %mailer_host%
username: %mailer_user%
password: %mailer_password%
jms_security_extra:
secure_controllers: true
secure_all_services: false
You created a database named test, not jobeet.

Resources