icaine/flunorette

基于 Nette/Database、FluendPdo 和 NotOrm 的数据库层。

v1.0.2 2014-07-02 16:38 UTC

This package is not auto-updated.

Last update: 2024-09-24 02:06:33 UTC


README

构建状态   下载总数   最新版本

Flunorette 是什么?

Flunorette

  • 是一个简化与表、关系和 CRUD 操作工作的数据库层。

  • 高度基于 Nette Database (Table) - NDB(T) 并使用修改后的 FluentPDO 作为 SQL 构建器。

  • 直接从 NDB(T)2.0 衍生,因此与它有 95% 的兼容性[1]

  • 使用与 NDBT2.0 相同的语法/API,但采用了 NDBT2.1 的更快代码。

我决定创建 Flunorette 的主要原因是 NDBT 对于简单的网站(如博客)来说是优秀的,但随着复杂网络应用的发展,迟早会遇到瓶颈。例如,一旦需要创建包含 JOIN 子句内条件的查询或其他任何高级查询,就无法使用 NDBT 实现。.

[1]: Flunorette 有一个替换器可以帮助您替换 NDB(T)2.0。

下载

通过 composer composer require icaine/flunorette '~1.0' 或通过 github

文档

可以在 wiki 页面 上找到。

### 示例

一些示例可以在 wiki 页面 上找到,更多示例可以在 测试 中看到。

变更日志

1.6.2014 - 一些类已移动到新的命名空间(朝向 PSR-4)。要从 0.9 迁移到 1.0,请使用

	//BC part

	//https://github.com/icaine/RenamedClassLoader
	$rcLoader = new iCaine\RenamedClassLoader([
		'Flunorette\\NetteDatabaseReplacer' => 'Flunorette\\Bridges\\Nette\\NetteDatabaseReplacer',
		'Flunorette\\Hydrator' => 'Flunorette\\Hydrators\\Hydrator',
		'Flunorette\\HydratorSelectionDefault' => 'Flunorette\\Hydrators\\HydratorSelection',
		'Flunorette\\HydratorArrayHash' => 'Flunorette\\Hydrators\\HydratorArrayHash',
		'Flunorette\\HydratorResult' => 'Flunorette\\Hydrators\\HydratorField',

		'Flunorette\\ActiveRow' => 'Flunorette\\Selections\\ActiveRow',
		'Flunorette\\Selection' => 'Flunorette\\Selections\\Selection',
		'Flunorette\\GroupedSelection' => 'Flunorette\\Selections\\GroupedSelection',
		'Flunorette\\ISelectionFactory' => 'Flunorette\\Selections\\ISelectionFactory',
		'Flunorette\\SelectionFactory' => 'Flunorette\\Selections\\SelectionFactory',

		'Flunorette\\DeleteQuery' => 'Flunorette\\Queries\\DeleteQuery',
		'Flunorette\\InsertQuery' => 'Flunorette\\Queries\\InsertQuery',
		'Flunorette\\JoinableQuery' => 'Flunorette\\Queries\\JoinableQuery',
		'Flunorette\\Query' => 'Flunorette\\Queries\\Query',
		'Flunorette\\QueryBuilder' => 'Flunorette\\Queries\\QueryBuilder',
		'Flunorette\\QueryContext' => 'Flunorette\\Queries\\QueryContext',
		'Flunorette\\SelectQuery' => 'Flunorette\\Queries\\SelectQuery',
		'Flunorette\\UpdateQuery' => 'Flunorette\\Queries\\UpdateQuery',

		'Flunorette\\IReflection' => 'Flunorette\\Reflections\\IReflection',
		'Flunorette\\ConventionalReflection' => 'Flunorette\\Reflections\\ConventionalReflection',
		'Flunorette\\DiscoveredReflection' => 'Flunorette\\Reflections\\DiscoveredReflection',
		'Flunorette\\ReflectionException' => 'Flunorette\\Reflections\\ReflectionException',

	]);
    $rcLoader->onClassLoaded[] = function ($old, $new) {
        trigger_error($old, E_USER_DEPRECATED);
    };
    $rcLoader->register();

	//If you are using the replacer
	//Flunorette\NetteDatabaseReplacer::replace();
	//end BC part