dsdeboer/propel-bundle integrates Propel ORM into Symfony, offering an alternative to Doctrine ORM. This is valuable for teams already using Propel or seeking performance optimizations (e.g., faster queries, schema migrations, or SQL generation).config/packages vs. app/config).Criteria) differs from Doctrine’s DQL/QueryBuilder, necessitating refactoring.diff/migrate) integrate with existing deployment pipelines?AppKernel.php bundle registration, propel.php config).AppKernel with config/bundles.php.PropelManager).app/config/propel.php to config/packages/propel.yaml.propel:schema:build, propel:diff, and propel:migrate for database management.EntityManager with Propel’s Connection/Criteria for queries.propel:generate:model) for scaffolding.# Propel schema (propel/schema.xml)
<table name="user">
<column name="id" type="integer" primaryKey="true" autoIncrement="true" />
<column name="name" type="varchar" size="255" />
</table>
doctrine.orm.entity_manager with propel.manager in services.yaml.services:
App\Service\UserService:
arguments:
$connection: '@propel.connection'
Criteria:
// Doctrine DQL
$users = $em->createQuery('SELECT u FROM App\Entity\User u WHERE u.name = :name')
->setParameter('name', 'John')
->getResult();
// Propel Criteria
$users = UserQuery::create()
->filterByName('John')
->find();
EntityManager mocks) with Propel’s Connection or in-memory databases (e.g., SQLite).PropelUserProvider.PropelModelType).StoDoctrineExtensionsBundle → Propel behaviors).EntityManager globally.propel:schema:build) simplifies database changes but requires discipline to keep schemas in sync with code.propel:migrate) are efficient for small-to-medium schemas but may struggle with large, complex databases.propel:schema:validate).How can I help you explore Laravel packages today?