inwebo / open-resume-bundle
Installs: 51
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
Type:symfony-bundle
pkg:composer/inwebo/open-resume-bundle
Requires
- php: ^8.2
- doctrine/doctrine-bundle: ^3.0|^2.0
- doctrine/orm: ^3.5
- inwebo/open-resume-model: ^1.0
- symfony/validator: ^7.3
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.89
- phpstan/phpstan: ^2.1
This package is auto-updated.
Last update: 2025-11-20 14:22:34 UTC
README
Open Resume Bundle for Symfony
An installable Symfony bundle providing Doctrine ORM mapped superclasses and models for the Open Resume domain (basics, profiles, work, volunteer, education, skills, etc.). Use it as a foundation to model resume data in your Symfony application, extending the provided base entities and wiring them into Doctrine.
This repository is a reusable library (not a standalone app).
Key features
- Doctrine ORM mapped superclasses for common resume entities
- Symfony Validator integration (interfaces/types geared for validation)
- Symfony bundle that prepends Doctrine mapping for the package entities
Stack and requirements
- Language: PHP 8.2+
- Framework: Symfony (bundle components; tested with Symfony 7 components)
- Persistence: Doctrine ORM 3.5+ with doctrine/doctrine-bundle (v2 or v3)
- Validation: symfony/validator ^7.3
See composer.json for authoritative constraints.
Installation (in a Symfony application)
- Require the bundle via Composer:
composer require inwebo/open-resume-bundle
- Define your concrete entity classes by extending the mapped superclasses from this bundle (e.g.,
Inwebo\OpenResumeBundle\Entity\Basics). Example:
<?php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use Inwebo\OpenResumeBundle\Entity\Basics as BaseBasics;
#[ORM\Entity]
class Basics extends BaseBasics
{
// add your own fields or mappings if needed
}
- Configure the bundle to point to your concrete classes. The bundle defines a configuration section with an
entitiesmap. Provide fully qualified class names for each key you use. Exampleconfig/packages/inwebo_open_resume.yaml:
inwebo_open_resume:
entities:
profile: App\Entity\Profile
work: App\Entity\Work
volunteer: App\Entity\Volunteer
education: App\Entity\Education
award: App\Entity\Award
certificate: App\Entity\Certificate
interest: App\Entity\Interest
language: App\Entity\Language
location: App\Entity\Location
project: App\Entity\Project
publication: App\Entity\Publication
reference: App\Entity\Reference
skill: App\Entity\Skill
Notes:
- No defaults are provided by the bundle; you should create concrete entities (extending the provided mapped superclasses) and wire them here.
- Doctrine mapping for this bundle’s
src/Entitydirectory is pre-registered automatically by the bundle; when you create your own concrete entities in your app namespace, ensure those are mapped as regular Doctrine entities.
- Run your usual Doctrine workflows in the host app:
php bin/console doctrine:schema:validate
php bin/console make:migration
php bin/console doctrine:migrations:migrate
Usage overview
- Extend the mapped superclasses in
Inwebo\OpenResumeBundle\Entityto implement concreteApp\Entity\...classes. - Use the interfaces from
inwebo/open-resume-model(a dependency) to program against contracts. - Access relationships like
Basics -> profiles,Basics -> work, etc., as exposed by the base classes.
For specific properties and methods, inspect the entities in src/Entity. Example files:
src/Entity/Basics.phpsrc/Entity/Profile.phpsrc/Entity/Work.phpsrc/Entity/Volunteer.php
Configuration reference
The bundle exposes the following config root with an entities section inside:
inwebo_open_resume:
entities:
award: 'FQCN required'
certificate: 'FQCN required'
education: 'FQCN required'
interest: 'FQCN required'
language: 'FQCN required'
location: 'FQCN required'
profile: 'FQCN required'
project: 'FQCN required'
publication: 'FQCN required'
reference: 'FQCN required'
skill: 'FQCN required'
volunteer: 'FQCN required'
work: 'FQCN required'
All listed keys are supported; each value must be a non-empty string (your concrete entity’s FQCN).
Development (this repository)
Clone and install dev dependencies:
git clone https://github.com/inwebo/open-resume-bundle.git
cd open-resume-bundle
composer install
Available Composer scripts:
composer run php-cs-fixer— run PHP-CS-Fixer onsrc/with risky rules enabledcomposer run php-stan— run PHPStan (config:phpstan.neon)
Scripts
Defined in composer.json:
{
"scripts": {
"php-cs-fixer": "vendor/bin/php-cs-fixer fix src --allow-risky=yes",
"php-stan": "vendor/bin/phpstan analyse -c phpstan.neon"
}
}
Run them with:
composer run php-cs-fixer
composer run php-stan
Environment variables
This bundle itself does not require specific environment variables. It relies on the host Symfony application’s standard configuration (e.g., database connection via DATABASE_URL for Doctrine).
TODO:
- Document any bundle-specific env toggles if/when added in future versions.
Tests
There are no tests in this repository at the moment.
TODO:
- Add unit tests and/or integration tests for entity contracts and configuration.
Project structure
Relevant files and directories:
src/— bundle codeInweboOpenResumeBundle.php— bundle class; config definition and Doctrine mapping prependEntity/— Doctrine mapped superclasses (e.g.,Basics,Profile,Work,Volunteer, ...)Model/— shared model traits (e.g.,HasBasicTrait)
composer.json— package metadata, constraints, and scriptsphpstan.neon— static analysis configurationLICENSE— GPL-3.0-or-laterCHANGELOG.md— change historyREADME.md— this file
License
GPL-3.0-or-later. See the LICENSE file for details.