e-butik/gittern
Composer 安装命令:
composer require e-butik/gittern
包简介
A Git library written in pure PHP. Making Git like music for PHP's ears.
README 文档
README
Making Git like music for PHP's ears.
Version 0.8 under development (because starting out at 0.1 or 1.0 is for squares)
Documentation is available at Read the Docs.
What is Gittern?
Gittern is a PHP library for reading from and writing to Git repositories. It doesn't depend on the git binary, it directly acccesses the repo files.
Gittern provides several interfaces for interacting with your Git repos. Firstly, there's a low level interface, where you manually create blobs, trees and commits. This can however become cumbersome very quickly. As such, there's also two different Gaufrette adapters included.
The first one, GitternCommitishReadOnlyAdapter is pretty much what it sounds like. It's an adapter to which you supply a commitish, and from which you may read the files associated with that commit.
The second one, GitternIndexAdapter allows you to read from and write to the Git index. The Git index is the staging area in which you stage new changes for a commit. Then, when you're ready, creating a commit from the index is quite simple. Just get the tree from the index, and use it to create your commit.
In addition to all of this functionality, Gittern is created with extensibility in mind. How Gittern reads data from the repository on disk is cleanly separated using the adapter pattern, so that if you have the need you could easily implement e.g. an adapter capable of maintaining multiple indexes, or Git object caching in something like MongoDB or Redis (in fact, if you don't care about accessing the repo from the git binary, you could just use this as a fast, distributed backend).
Who's behind all this?
E-butik.se, one of Sweden's foremost e-commerce platform providers. Visit our developer blog.
How do I install Gittern?
Use Composer. More detailed instructions are available in the docs.
How stable is the API?
Not very. We're still refactoring the API pretty much whenever we feel like it. What is semi-stable though is that the Gaufrette adapters will remain compatible with the Gaufrette master branch, so if you're mainly using the Gaufrette adapters, you'll not experience a lot of API breakage.
Kinda-sorta bugs
- The index flags field (see http://opensource.apple.com/source/Git/Git-26/src/git-htmldocs/technical/index-format.txt) contains an assume-valid flag that's not represented
- The file name length of the flags field should only be written in full if it's less than 0xFFF.
- The stage flag isn't desiccated properly.
- Indexes in conflict (i.e. with stage > 0, see http://opensource.apple.com/source/Git/Git-26/src/git-htmldocs/technical/index-format.txt) should be handled somehow, even if just by an exception.
- The mtime of a file in GitternCommitishReadOnlyAdapter is always the same as for the commit, regardless of whether the file has been changed in the given commit or not.
Planned features
There are several planned features, which didn't make it in to version 0.8.
- Subclassing Repository with a git binary dependent subclass to allow some advanced commands
- Packfile creation (currently packfiles can only be read)
- Support for resolving lightweight tags
- Support for reading annotated tags
- Support for the link tree entry type
- Support for the commit tree entry type (i.e. submodules)
- Making the Gittern\Entity\GitObject\User class into an interface
- Support for all kinds of Git Treeishes
- Support for updating the reflog when moving a branch head
e-butik/gittern 适用场景与选型建议
e-butik/gittern 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 4.7k 次下载、GitHub Stars 达 53, 最近一次更新时间为 2012 年 04 月 11 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 e-butik/gittern 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 e-butik/gittern 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 4.7k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 54
- 点击次数: 20
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2012-04-11