Roland Häder [Sun, 13 Aug 2017 19:19:54 +0000 (21:19 +0200)]
Rewrite continues:
- EmptyVariableException can be easily replaced by InvalidArgumentException (IEA)
because there is no need for to over-detailed exceptions, but still it is a
good idea to have more (custom) around than the defaults
- MissingMethodException was no longer used and is now emptied
- updated TODOs.txt
- ignored vendor in todo-builder.sh
Roland Häder [Sun, 13 Aug 2017 18:51:58 +0000 (20:51 +0200)]
Rewrites:
- *IsEmptyException are all superflous as also NPE and IAE can do the same and
much more generic
- closed TODO to remove inConstructor, was bad code style anyway
Roland Häder [Sun, 13 Aug 2017 18:36:12 +0000 (20:36 +0200)]
Rewrite:
- the configuration instance is now instanciated by
FrameworkBootstrap::getConfigurationInstance(), this *may* has made it sure
that the class FrameworkConfiguration can be fully covered by unit tests.
- still a call-back instance test is pending
Roland Häder [Sun, 13 Aug 2017 18:15:36 +0000 (20:15 +0200)]
Rewrote a bit:
- removed redundant convertDashesToUnderscores() in FrameworkConfiguration but
had to add an include line again, let's save redudant code, right? :-)
Roland Häder [Sun, 13 Aug 2017 15:52:22 +0000 (17:52 +0200)]
Rewritten:
- rewrote framework to use more SPL's classes SplFileInfo and SplFileObject
instead of "bare" PHP functions (more objects, better type-hints)
- this may break a lot other code, please rewrite, too
- updated .gitattributes
Roland Häder [Sun, 16 Jul 2017 21:46:53 +0000 (23:46 +0200)]
Continued with unit tests:
- some refacturing: all detectFoo() methods are now moved from configuration
to bootstrap class as this seems proper place
- also they can only be called static
- DNS resolver is now globally quieted in tests/bootstrap.php
- created new unit test for FrameworkBootstrap class (partly)
- this origins from configuration unit test
Roland Häder [Sun, 16 Jul 2017 21:05:56 +0000 (23:05 +0200)]
Continued:
- Also test unsupported methods if they are still unsupported. Please note, that
these 2 methods may be removed from FrameworkInterface in the future as they
come from very old times where no database frontend classes exist.
Roland Häder [Sun, 16 Jul 2017 16:19:49 +0000 (18:19 +0200)]
Added first PHPUnit-based unit test. This will test some of the methods in the
configuration class 'FrameworkConfiguration'. Strangely, not all I have tested
have 100% coverage ... Why? :-(
Roland Häder [Sun, 16 Jul 2017 15:02:28 +0000 (17:02 +0200)]
Continued a bit:
- some rewrites to make PHPUnit be able to unit-test it
- more sanity-checks on parameters, were sometimes combined
- surpress some anoyances caused by to strict xdebug settings
Roland Häder [Sun, 16 Jul 2017 11:14:01 +0000 (13:14 +0200)]
Continued:
- rewrote some parts of the class loader to e.g. avoid loading full lust into
variable and then only decode it
- renamed shortended variables
- cut a very long variable down a bit (one word)
- ignored all logfiles in root directory
Roland Häder [Sun, 16 Jul 2017 10:56:32 +0000 (12:56 +0200)]
Continued a bit:
- renamed method app_exit() to exitApplication(), still it needs rewritings
- rewrote a bit searching for framework files, also check __DIR__ from
index.php to find it
Roland Häder [Sun, 16 Jul 2017 10:43:03 +0000 (12:43 +0200)]
Continued a bit:
- start of rewriting unit tests, these old where not very well written anyway
- created phpunit.xml.dist
- created composer.json/lock files. No, I'm not going to replace my class
loader with it. I still like mine better. :-)
- created tests/bootstrap.php which contains an ugly hack for loading my tests
first. Maybe there is a better way?
- moved class to proper (deeper) location
Roland Häder [Sun, 16 Jul 2017 00:32:39 +0000 (02:32 +0200)]
Cleanup:
- removed deprecated unit tests, very old-lost stuff
- removed deprecated setMagicQuotesRuntime() which only wraps an already
deprecated PHP function
- unit tests with PHPUnit are coming! :-)
Roland Häder [Sat, 1 Jul 2017 21:27:39 +0000 (23:27 +0200)]
Continued a bit:
- added experimental RegistryIterator class which will iterate over all found
entries in the given registry. If a sub-registry is found, also their entries
will be iterated over instead of the sub-registry being returned.
Roland Häder [Fri, 19 May 2017 13:56:31 +0000 (15:56 +0200)]
Continued a bit:
- in the wake of mcrypt being deprecated, an OpenSSL-based implementation
needs to be written. This commit marks the start for it. Please note, that
currently you don't have *ANY* encryption as the methods are unfinished
- moved DATA_PAYLOAD_SEPARATOR to EncryptableStream
- updated TODOs.txt
Roland Häder [Thu, 18 May 2017 20:23:46 +0000 (22:23 +0200)]
Rewrite continued:
- the framework now attempts to initialize the application more OOP-ed
- this is done by calling 3 simple methods:
+ FrameworkBootstrap::initFramework();
+ FrameworkBootstrap::prepareApplication();
+ FrameworkBootstrap::startApplication();
- initFramework: 3 simple steps again:
+ scanFrameworkClasses: scans for framework-related classes, interfaces and
exceptions
+ determineRequestType: determines request-type (console, html) and loads all
given parameter into the initialized request class. It also initializes the
response instance
+ validateApplicationParameter: validates the parameter 'app' if it is there
and points to a valid application (very basic check, more later on)
- prepareApplication: Prepares detected application by attempting to load all
required include files and only optional if present. Please note that some
files are now deprecated and should be ported to the new methods (see below)
- startApplication: Starts the application by calling 3 methods:
+ setupApplicationData: replacement for data.php, sets all application's data.
Please don't set any configuration stuff here, this is still done in
config.php!
+ initApplication: Calls some additional methods to initialize application.
Here is a good place to init database instance by calling the shiny new
method initDatabaseInstance().
+ launchApplication: Still old method name which starts the application.
Please remove any request/response-init stuff from here as it is now
generically done in FrameworkBootstrap
- include files in framework/database/ are now all deprecated
- renamed framework/config.inc.php -> framework/config-global.php
- PrimeraPortal's API is history, so let us remove the obsolete file here, too
- some "contrib" files updated
- updated TODOs.txt
- moved rand.php to contrib/ folder
Roland Häder [Wed, 3 May 2017 16:05:20 +0000 (18:05 +0200)]
Continued:
- the word "Default" and "Array" is not possible to use alone in namespace like
<?php
namespace Some\Foo\Array;
?> <-- yes, discouraged. just to clearify end-of-php
- some math stuff "fixed".
- removed discouraged headers from all remaining scripts