• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

visavi / motor-orm / 30997142727
98%

Build:
DEFAULT BRANCH: master
Ran 05 Aug 2026 10:22AM UTC
Jobs 1
Files 20
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

05 Aug 2026 10:20AM UTC coverage: 98.964% (+0.03%) from 98.938%
30997142727

push

github

visavi
Свой CsvFile вместо SplFileObject, чтение стало быстрее

PHP 8.6 объявляет устаревшими fgetcsv(), fputcsv(), setCsvControl() и
getCsvControl() у SplFileObject, а csv — единственное, ради чего orm вообще
открывал файл. Процедурные fgetcsv() и fputcsv() над обычным дескриптором
депрекейт не затрагивает, поэтому разбор csv остаётся за движком.

CsvFile — SeekableIterator поверх fopen, с csv-контролем в конструкторе
вместо сеттера. Строки таблицы отдаёт rows(), генератор: строка стоит одно
возобновление генератора вместо вызова каждого метода трёх итераторов, и
Table::records() больше не заворачивает файл в LimitIterator и
CallbackFilterIterator.

На 50 000 строк против того же кода на голом php: выбор строк по условию
x1.24 -> x1.07, обход всей таблицы x1.38 -> x1.23, десять последних с
сортировкой x0.80 -> x0.73. На 500 000 строк cursor() 890 -> 785 мс,
count() 633 -> 551 мс, paginate(10) 638 -> 556 мс.

Ломающее: Model::file(), Model::createFile() и Table::file() возвращают
CsvFile, а Table::rewrite() отдаёт замыканию номер строки вместо файла,
из которого она прочитана.

64 of 64 new or added lines in 5 files covered. (100.0%)

1051 of 1062 relevant lines covered (98.96%)

29.41 hits per line

Jobs
ID Job ID Ran Files Coverage
1 30997142727.1 05 Aug 2026 10:22AM UTC 20
98.96
GitHub Action Run
Source Files on build 30997142727
  • Tree
  • List 20
  • Changed 4
  • Source Changed 4
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #30997142727
  • e68e2300 on github
  • Prev Build on master (#30439216777)
  • Next Build on master (#30997571065)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc