PHPackages                             maximus905/t4fork - 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. [Framework](/categories/framework)
4. /
5. maximus905/t4fork

ActiveLibrary[Framework](/categories/framework)

maximus905/t4fork
=================

This is a fork T4 framework (pr-of-it/t4)

04231PHP

Since Feb 14Pushed 7y ago1 watchersCompare

[ Source](https://github.com/Maximus905/t4fork)[ Packagist](https://packagist.org/packages/maximus905/t4fork)[ RSS](/packages/maximus905-t4fork/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (2)Used By (0)

t4
==

[](#t4)

Fixes 1)(default\_connection) изменен метод Model::setConnection($connection)

Если не указан явно соединение для модели, то используется одно соединение с БД для всех моделей (основанное на параметрах соединения 'default'). Нужно для корректной работа транзакций (если объекты Connection для дефолтного соединения разныеразные для моделей, то возникают проблемы когда используются ограницения внешнего ключа и условие NOT NULL. Модели делают save() в разных сессиях и видимо поэтому не видят связующие значения).

2. (pivot\_tables) изменен метод TRelations::getRelationLinkName($relation)

Цель изменений: добавить возможность явного указания имени связующей таблицы при связи между моделями типа many\_to\_many. Для этого предлагаю ввести ключевое слово 'pivot' при описании схемы модели (в секции 'relations').

Причина изменений: когда в базе данных применяются схемы и в описании моделей явно указывается название таблицы модели в виде schema\_name.table\_name, то фреймворк не может правильно вычислить имя связующей таблицы.

Пример использования: static protected $schema = \[ 'table' =&gt; 'schema\_name.table\_name', 'columns' =&gt; \[ 'book' =&gt; \['type' =&gt; 'string'\], \], 'relations' =&gt; \[ 'authors' =&gt; \['type' =&gt; self::MANY\_TO\_MANY, 'model' =&gt; Author::class, 'pivot' =&gt;'schema\_name.link\_table\_name'\] \] \];

3. (fixValidateProperty) Для Postgresql, MySQL изменил методы findAllByQuery, findByQuery, innerSet (трейт TStdGetSet). Метод валидации свойств теперь не вызывается при выборке объекта из базы. В методе валидации свойства isNew === false при выборке объекта из базы.
4. (addMethodsToTreeExtension) Добавлен статический метод метод findAllRoots(). Ищет все элементы у которых parent == null.
5. добавил свойства isUpdated, wasUpdated. isUpdated устанавливается в true, когда isNew == false и успешно отработал валидатор любого свойства объекта. Сбрасывается в false после save(). wasUpdated устанавливается после save(), но перед afterSave() (по ананлогии с isNew wasNew).

###  Health Score

24

—

LowBetter than 32% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity13

Limited adoption so far

Community18

Small or concentrated contributor base

Maturity40

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 68.5% 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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/1bf0a33b72ad09b4de97e8058ba24794e43a7e2b758e4c127688f7187278db08?d=identicon)[Maximus905](/maintainers/Maximus905)

---

Top Contributors

[![philfromfmf](https://avatars.githubusercontent.com/u/1888652?v=4)](https://github.com/philfromfmf "philfromfmf (527 commits)")[![finam-opensource](https://avatars.githubusercontent.com/u/10113222?v=4)](https://github.com/finam-opensource "finam-opensource (93 commits)")[![Maximus905](https://avatars.githubusercontent.com/u/15923558?v=4)](https://github.com/Maximus905 "Maximus905 (35 commits)")[![alekseyMaksarov](https://avatars.githubusercontent.com/u/8393761?v=4)](https://github.com/alekseyMaksarov "alekseyMaksarov (24 commits)")[![gembux2012](https://avatars.githubusercontent.com/u/8766759?v=4)](https://github.com/gembux2012 "gembux2012 (24 commits)")[![scorp7mix](https://avatars.githubusercontent.com/u/11144874?v=4)](https://github.com/scorp7mix "scorp7mix (14 commits)")[![ryzhikk](https://avatars.githubusercontent.com/u/11041142?v=4)](https://github.com/ryzhikk "ryzhikk (12 commits)")[![djaf77](https://avatars.githubusercontent.com/u/8984222?v=4)](https://github.com/djaf77 "djaf77 (12 commits)")[![dmitlantis](https://avatars.githubusercontent.com/u/1695091?v=4)](https://github.com/dmitlantis "dmitlantis (9 commits)")[![vera23](https://avatars.githubusercontent.com/u/8767856?v=4)](https://github.com/vera23 "vera23 (7 commits)")[![CoooLLer](https://avatars.githubusercontent.com/u/11041436?v=4)](https://github.com/CoooLLer "CoooLLer (7 commits)")[![Oleg19](https://avatars.githubusercontent.com/u/8812432?v=4)](https://github.com/Oleg19 "Oleg19 (3 commits)")[![AlexPanich](https://avatars.githubusercontent.com/u/11957131?v=4)](https://github.com/AlexPanich "AlexPanich (1 commits)")[![eropkinvitaliy](https://avatars.githubusercontent.com/u/11033498?v=4)](https://github.com/eropkinvitaliy "eropkinvitaliy (1 commits)")

### Embed Badge

![Health badge](/badges/maximus905-t4fork/health.svg)

```
[![Health](https://phpackages.com/badges/maximus905-t4fork/health.svg)](https://phpackages.com/packages/maximus905-t4fork)
```

###  Alternatives

[laravel/telescope

An elegant debug assistant for the Laravel framework.

5.2k67.8M190](/packages/laravel-telescope)[laravel/passport

Laravel Passport provides OAuth2 server support to Laravel.

3.4k85.0M529](/packages/laravel-passport)[spiral/roadrunner

RoadRunner: High-performance PHP application server and process manager written in Go and powered with plugins

8.4k12.2M84](/packages/spiral-roadrunner)[nolimits4web/swiper

Most modern mobile touch slider and framework with hardware accelerated transitions

41.8k177.2k1](/packages/nolimits4web-swiper)[laravel/dusk

Laravel Dusk provides simple end-to-end testing and browser automation.

1.9k36.7M256](/packages/laravel-dusk)[laravel/prompts

Add beautiful and user-friendly forms to your command-line applications.

708181.8M591](/packages/laravel-prompts)

PHPackages © 2026

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