pimf-framework
pimf-framework copied to clipboard
Increase OOP, reduce hard coupling, improve internal APIs, etc.
This issue is mainly to track development on these topics. I'll be tagging this issue in my commit messages.
Classes to be converted from static to OO:
- [ ]
Pimf\Application
- [x]
Pimf\Config
- [x]
Pimf\Param
- [ ]
Pimf\Util\Header\ResponseStatus
- [ ]
Pimf\Util\Header
- [x]
Pimf\Logger
Classes that need hard class references to be replaced with dependency injection:
- [ ]
Pimf\Application
- [x]
Pimf\Environment
Internal APIs that need improvement:
- [ ]
Pimf\Cache::factory()
andPimf\Session::factory()
-- would like to get rid of the switch statements by unifying the signatures of each storage type constructor as much as possible
Methods with too many params:
- [ ]
Pimf\Error::native()
- [ ]
Pimf\Controller\Base::__construct()
- [ ]
Pimf\Cookie::put()
- [ ]
Pimf\Cookie::forever()
- [ ]
Pimf\Request::__construct()
- [ ]
Pimf\Util\Uploaded::__construct()
Reduce complexity:
- [ ]
Pimf\Application::run()
- [x]
Pimf\Logger
- [ ]
Pimf\Util\Validator
- [x] has duplicate code in
lengthBetween()
andvalueBetween()
- [x] has duplicate code in
- ~~
Pimf\Controller\Core::initCliAction()
~~
Remove usage of exit
/die
:
- [x]
Pimf\Application
lines 102 and 261 - [x]
Pimf\Error
line 38 - [ ]
Pimf\Response
line 144 - [ ]
Pimf\Util\Header
lines 69, 83, 97, 103, 134, 233
Consider better names for functions:
- [x]
Pimf\Session\Storages\Storage::id()
->newId()
- [x]
Pimf\Uri::is()
->matches()
- [x]
Pimf\Url::to()
->make()
- [x]
Pimf\Url::toAsset()
->makeForAsset()
- [x]
Pimf\Util\Character::is()
->matches()
- [x]
Pimf\Logger::init()
->checkInit()
- ~~
Pimf\Util\Validator::ip()
~~
Improve adherence to ADR pattern in:
- [ ]
Pimf\View
- [ ]
Pimf\Controller\Base
@garrettw is the checklist above up to date?
Yes, I've been making those changes in my master branch, and adding new checklist items as I come across other things that need doing.
I am looking forward to it and am very excited :-)
Me too. I originally wanted to build my own framework, and I still do, but I think it will be easier to start with this existing project which is already similar to what I would want.