PHPackages                             ride/app-orm-survey - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Database &amp; ORM](/categories/database)
4. /
5. ride/app-orm-survey

ActiveLibrary[Database &amp; ORM](/categories/database)

ride/app-orm-survey
===================

Survey model for the Ride ORM.

1.1.0(9y ago)01733MITPHP

Since Oct 2Pushed 9y ago12 watchersCompare

[ Source](https://github.com/all-ride/ride-app-orm-survey)[ Packagist](https://packagist.org/packages/ride/app-orm-survey)[ RSS](/packages/ride-app-orm-survey/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (3)Versions (12)Used By (3)

Ride: ORM Survey Model
======================

[](#ride-orm-survey-model)

This module will add models to the Ride ORM to create and manage surveys.

Models
------

[](#models)

### Survey

[](#survey)

The `Survey` model holds the available surveys. A survey is a container of questions which belong together. You can set a name and description for a general introduction.

### SurveyQuestion

[](#surveyquestion)

The `SurveyQuestion` model holds the definitions of the questions. A question belongs to one survey only. You can set the question and a description to give an explaination about the question.

A question can hold predefined answers.

You can a flag a question to allow multiple answers. This is for the frontend to know if a radio button should be used to allow only one answer, or checkboxes to allow multiple answers.

You can flag a question as being open. When the open question has no answers, a single text area should be displayed for an open answer. If the open question has answers, an "other" option should be added with a text area for an open answer.

### SurveyAnswer

[](#surveyanswer)

The `QuestionAnswer` model holds the predefined answers.

Each answer can have a score for evaluating the question. More on evaluations later on.

An answer can also contain a Likert scale. See the next topic to see what it is.

### SurveyLikert

[](#surveylikert)

The `SurveyLikert` model holds the available Likert scales.

A Likert scale is used for a question which should look like this:

very badbadaveragegoodvery goodanswer 1Xanswer 2Xanswer 3XIn this example, the *very bad* ... *very good* is the Likert scale. The *answer 1* ... *answer 3* are the regular answers which hold the Likert scale.

You set a name for the scale and add the available answers.

### SurveyEvaluation

[](#surveyevaluation)

The `SurveyEvaluation` model is used to create evaluations. An evaluation can evaluate a single question or a complete survey.

You set a number of questions to the evaluation in combination with a set of rules.

When a `SurveyEntry` is being evaluated, a total score is calculated for the questions selected in the evaluation. The result of an evaluation is the total score of these questions, combined with the rule which applies to this score.

The evaluation can calculate an average score for all logged evaluations.

### SurveyEvaluationRule

[](#surveyevaluationrule)

The `SurveyEvaluationRule` model holds the rules of the evaluations. These rules hold a title and a body, as well as a minimum and maximum score.

The rule is considered an evaluation result when the score of the answers of the evaluation questions is between the minimum and maximum score of the rule.

### SurveyEvaluationLog

[](#surveyevaluationlog)

The `SurveyEvaluationLog` model is a history of evaluations.

Keeping this history is optional but adds the functionality to calculate an average score for an evaluation. This can be done at any time with the CLI command provided by the [ride/cli-orm-survey](https://github.com/all-ride/ride-cli-orm-survey) module.

### SurveyEntry

[](#surveyentry)

The `SurveyEntry` models is used to register when somebody fills in a survey.

Out of the box, it holds a name, the survey and the given answers.

This is a simple model which, most of the time, will be extended to add more information about the person who filled in the survey. Just keep the `survey` and `answers` fields.

### SurveyEntryAnswer

[](#surveyentryanswer)

The `SurveyEntryAnswer` model holds all registered answers of a survey entry.

This model has 2 relationships with the answer model.

The `answer` field holds the selected predefined answer.

When a Likert is used, the `answer` field holds the Likert answer while the `questionAnswer` field holds the answer of the question which uses the Likert scale.

So applied on our Likert example from above: the `answer` field holds the *very bad* ... *very good* answer, while the `questionAnswer` holds the *answer 1* ... *answer 2*.

The answer of an open question is set in the `description` field.

Related Modules
---------------

[](#related-modules)

- [ride/app](https://github.com/all-ride/ride-app)
- [ride/app-orm](https://github.com/all-ride/ride-app-orm)
- [ride/cli-orm-survey](https://github.com/all-ride/ride-cli-orm-survey)
- [ride/lib-orm](https://github.com/all-ride/ride-lib-orm)
- [ride/wba-survey](https://github.com/all-ride/ride-wba-survey)
- [ride/web-orm](https://github.com/all-ride/ride-web-orm)
- [ride/wra-orm](https://github.com/all-ride/ride-wra-orm)
- [ride/wra-orm-survey](https://github.com/all-ride/ride-wra-orm-survey)

Installation
------------

[](#installation)

You can use [Composer](http://getcomposer.org) to install this application.

```
composer require ride/app-orm-survey

```

###  Health Score

31

—

LowBetter than 68% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity10

Limited adoption so far

Community15

Small or concentrated contributor base

Maturity70

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~42 days

Recently: every ~63 days

Total

10

Last Release

3497d ago

Major Versions

0.5.0 → 1.0.02016-10-14

### Community

Maintainers

![](https://www.gravatar.com/avatar/6d98d3f0d5db5eb241c6ee74bcee87d1e7dc1aaf7942b933d68e612ee2352eea?d=identicon)[ride-user](/maintainers/ride-user)

---

Top Contributors

[![kayalion](https://avatars.githubusercontent.com/u/2340819?v=4)](https://github.com/kayalion "kayalion (42 commits)")

### Embed Badge

![Health badge](/badges/ride-app-orm-survey/health.svg)

```
[![Health](https://phpackages.com/badges/ride-app-orm-survey/health.svg)](https://phpackages.com/packages/ride-app-orm-survey)
```

###  Alternatives

[doctrine/orm

Object-Relational-Mapper for PHP

10.2k285.3M6.2k](/packages/doctrine-orm)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
