Propel2

Propel2是一个开源的高性能对象关系映射(ORM),适用于现代PHP。(Propel2 is an open-source high-performance Object-Relational Mapping (ORM) for modern PHP.)

Github stars Tracking Chart

Propel2

Propel2是PHP 5.5及更高版本的开源对象关系映射(ORM)。

要求

Propel2使用以下Symfony2组件:

Propel2也依靠 Composer 管理依赖关系,但您也可以使用 ClassLoader(例如参见 autoload.php.dist 文件)。

Propel2仅支持PHP 5.5及更高版本。

安装

阅读 Propel文档

贡献

每个人都可以为Propel2做出贡献。只需将它分叉,并发送合并请求。 您必须遵循 Propel2编码标准并尽可能提供单元测试。另请查看路线图,以了解我们正在开展的工作!

请参阅我们的贡献指南。谢谢!

许可证

请参阅 LICENSE 文件。

Overview

Name With Ownerpropelorm/Propel2
Primary LanguagePHP
Program languagePHP (Language Count: 5)
PlatformLinux, Mac, Windows
License:MIT License
Release Count16
Last Release Name2.0.0-beta4 (Posted on )
First Release Name2.0.0-alpha1 (Posted on )
Created At2011-10-06 06:50:51
Pushed At2024-04-26 11:44:20
Last Commit At2024-04-12 13:05:55
Stargazers Count1.3k
Watchers Count67
Fork Count389
Commits Count5.2k
Has Issues Enabled
Issues Count949
Issue Open Count241
Pull Requests Count814
Pull Requests Open Count34
Pull Requests Close Count199
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private

Propel2

Propel2 is an open-source Object-Relational Mapping (ORM) for PHP 5.5 and up.

Build Status
Code Climate

Gitter

Requirements

Propel2 uses the following Symfony2 Components:

Propel2 also relies on Composer to manage dependencies but you
also can use ClassLoader (see the autoload.php.dist file for instance).

Propel2 is only supported on PHP 5.5 and up.

Installation

Read the Propel documentation.

Contribute

Everybody can contribute to Propel2. Just fork it, and send Pull Requests.
You have to follow Propel2 Coding Standards and provides unit
tests as much as possible. Also check out the roadmap to get an overview of what we are working on!

Please see our contribution guideline. Thank you!

Status of the project

Never ending alpha releases?

Propel v2 started as very big refactoring of the old Propel version 1, making it PSR1-2 compatible, introducing namespaces
and refactoring a lot of internal stuff.
However, the heart (and most complex code at the same time) of Propel 1 and 2 is the
Query
and
Object classes builder,
together 8k unmaintainable lines of code. These 2 files (and with it the architecture) is the main problem why we can not
release a stable version, because it never went stable and due to the lack of contributions (and mean, nobody is surprised
when you look at the very complex structure of those 2 files) we are simply not able to release a version that indicates
that you get somehow support for bugs and new features, which is our aspiration to do so once a official stable version is tagged.

Because Propel2 took so much time (several years) and ActiveRecord (the way it was built in Propel1 and 2) is not modern
anymore (only hardly testable, not so much enjoyable) along with other reasons, we decided to rewrite the very heart of Propel.
The result is Propel3 a data-mapper implementation with optional active-record traits.
It is much cleaner now, is able to support also NoSQL databases and its data-mapper implementation allows you to write tests
in a more enjoyable way. To sum up: A very modern approach that is also designed to work in a high-performance
application-server environment like PHP-PM.

In our eyes it makes no sense to tag a Propel2 stable version, because there is simply too less manpower on this very complex
project, we do not want to maintain an old obsolete architecture and want to invest our life time more in a modern approach
of doing ORM in modern PHP.

Our advice:

  1. Use Doctrine if you are looking for a long-term supported, full-featured (and difficult to learn) and stable ORM.
  2. Use easy to learn Eloquent for prototyping and smaller projects.
  3. Help us build Propel3, which aims someday to be both of the above.

License

See the LICENSE file.

To the top