{"push_id":813098286,"size":27,"distinct_size":27,"ref":"refs/heads/master","head":"134273a5677043367571d098c0974f7fd6a4bd50","before":"c1b5bf71f1d71879cdf27a9d8b21d56a706d12a4","commits":[{"sha":"2bd482577756939e4293b17d73cf5e46dae59967","author":{"email":"e0ba1aadbd518ba09a5e78eb15de6a000e77f41a@gmail.com","name":"bbr"},"message":"Update README.md","distinct":true,"url":"https://api.github.com/repos/beavercode/treatment_plan/commits/2bd482577756939e4293b17d73cf5e46dae59967"},{"sha":"9a9ebcee8d78b6f62d7f603100556b1b8f21ebee","author":{"email":"e0ba1aadbd518ba09a5e78eb15de6a000e77f41a@gmail.com","name":"bbr"},"message":"Start fixing all pdf template errors and incoming changes.\n\ntpl/pdf\npdf_summary_tpl.php\n - fix striped header red square\n - add a bunch of comments\npdf_stage-price_tpl.php\n - fix striped header red square","distinct":true,"url":"https://api.github.com/repos/beavercode/treatment_plan/commits/9a9ebcee8d78b6f62d7f603100556b1b8f21ebee"},{"sha":"cda2b70d069e12205710019685ca437b555e30f9","author":{"email":"e0ba1aadbd518ba09a5e78eb15de6a000e77f41a@gmail.com","name":"bbr"},"message":"Many changes. DO NOT DO THIS AGAIN!!!\n\nCommon\n - add/change many comment doc blocks to be more informative\n - add/replace doc comment in the top of the file to email\n - replace @package from UTI\\Core or UTI\\Lib to UTI for common files\n - add/replace @package for packages(libs) to see information what package this is\nconfig.php\n - add description of each config option\n - embrace temporary block with todo <start> ... <end>\n - add app.result option what stands for next actions with app result: show or download pdf file\n - add app.tmp option to store temporary files, e.g. pdf files for merge\n - change app.docx -> app.upload_dir, because not only docx can be uploaded\nbootstrap.php\n - add new constant APP_RESULT\n - change constant APP_DOCX name to APP_UPLOAD_DIR\n - change Router::ctor() parameters, add 3rd 'scheme' parameter\nREADME.md\n - update php dependencies\n - update TODO section\nVendor/packages\n - add phpoffice/phpexcel\n - update packages\nDevelopment\n - add \"error_reporting\" directive to built-in.ini\n - update composer.phar\n - change .gitignore path \".../docx\" -> \".../upload_dir\"\n\nCore\nSystem.php\n - move System::redirect2Url() -> Router::redirect() because this is more logical place for method\nAppException.php\n - changenow extends from \\Exception instead of \\RuntimeException(), need better way to do application exceptions...\n\nRouting.\n - change default routes name from 'main' -> 'index'\nRouter.php\n - add Router::register() where routes are set according to AuraRouter methods\n - add Router::match() wrapper to AuraRouter::match() plus some checks\n - add Router::dispatch() to create specific controller\n - add Router::getRoutes() to get routes from some source or delegate someone to get routes(xml_parse, yaml_parse, etc)\n - add Router::getUri() wrapper for AuraRouter::generate() plus some checks\n - add Router::redirect() for redirect to specific route location\n - change Router::run() to use Router::register(), Router::match(), Router::dispatch() for convenience\n\nControllers\n - implement routing changes in route names and new methods\n - change default routes name from 'main' -> 'index'\nAuthController.php\n - change AuthController::login() uses Router::redirect() instead of System::redirect2Url()\n - change AuthController::logout() uses Router::redirect() instead of System::redirect2Url()\nPlanController.php\n - change PlanController::ctor() uses Router::redirect() instead of System::redirect2Url()\n - change PlanController::index() uses Router::getUri() instead of direct AuraRouter::generate()\n - change PlanController::show() uses Router::getUri() instead of direct AuraRouter::generate()\n\nModels\n - add/modify many comment doc blocks\nPlanModel.php\n - change property PlanModel::dirDocx -> PlanModel::dirUpload, see config.php and bootstrap.php change above in 'Common' section\nPlanPdfModel.php\n - change alias of 'iio\\libmergepdf\\Exception' to 'MergeException'\n - change 2nd parameter name in PlanPdfModel::stagePriceToHtml(), $docData -> $price","distinct":true,"url":"https://api.github.com/repos/beavercode/treatment_plan/commits/cda2b70d069e12205710019685ca437b555e30f9"},{"sha":"5b544674141d8ff78ae977a1abab3f11f574f6f1","author":{"email":"e0ba1aadbd518ba09a5e78eb15de6a000e77f41a@gmail.com","name":"bbr"},"message":"Change Aura/Router initiation in Router::__construct.","distinct":true,"url":"https://api.github.com/repos/beavercode/treatment_plan/commits/5b544674141d8ff78ae977a1abab3f11f574f6f1"},{"sha":"c0e42fe3d9fcb6b8f92f8fcc2cf8e1ebb47536b5","author":{"email":"e0ba1aadbd518ba09a5e78eb15de6a000e77f41a@gmail.com","name":"bbr"},"message":"Add folder for sqlite database file.\n\nconfig.php\n - add 'app.db.sqlite' options what point on db file","distinct":true,"url":"https://api.github.com/repos/beavercode/treatment_plan/commits/c0e42fe3d9fcb6b8f92f8fcc2cf8e1ebb47536b5"},{"sha":"da74a96c3d2f4ea11fff69161c067d94d8589c0c","author":{"email":"e0ba1aadbd518ba09a5e78eb15de6a000e77f41a@gmail.com","name":"bbr"},"message":"Initial commit for memory package.","distinct":true,"url":"https://api.github.com/repos/beavercode/treatment_plan/commits/da74a96c3d2f4ea11fff69161c067d94d8589c0c"},{"sha":"d63580d73fc5acb558e6d2f34db24c759c409019","author":{"email":"e0ba1aadbd518ba09a5e78eb15de6a000e77f41a@gmail.com","name":"bbr"},"message":"Initial commit for form package.","distinct":true,"url":"https://api.github.com/repos/beavercode/treatment_plan/commits/d63580d73fc5acb558e6d2f34db24c759c409019"},{"sha":"7f201e8504899e221f98ac5c667e948730f61025","author":{"email":"e0ba1aadbd518ba09a5e78eb15de6a000e77f41a@gmail.com","name":"bbr"},"message":"Initial commit for transliterate package.","distinct":true,"url":"https://api.github.com/repos/beavercode/treatment_plan/commits/7f201e8504899e221f98ac5c667e948730f61025"},{"sha":"8fc5f569810f26aa7a0ba7d1e4cc9c5f40455292","author":{"email":"e0ba1aadbd518ba09a5e78eb15de6a000e77f41a@gmail.com","name":"bbr"},"message":"Merge branch 'p_form' into dev","distinct":true,"url":"https://api.github.com/repos/beavercode/treatment_plan/commits/8fc5f569810f26aa7a0ba7d1e4cc9c5f40455292"},{"sha":"339299b1d9a2f95098fac44210167ff484ff80cb","author":{"email":"e0ba1aadbd518ba09a5e78eb15de6a000e77f41a@gmail.com","name":"bbr"},"message":"Add doc-block for app.db.sqlite\nFix spelling for app.uri_base","distinct":true,"url":"https://api.github.com/repos/beavercode/treatment_plan/commits/339299b1d9a2f95098fac44210167ff484ff80cb"},{"sha":"12c2de01b14101bd3039d73ad7a49bef97d694e6","author":{"email":"e0ba1aadbd518ba09a5e78eb15de6a000e77f41a@gmail.com","name":"bbr"},"message":"Simplify to html/pdf generating. Add missed comments.\n\nControllers\n - rename Controller -> AbstractController according to convention\n\nModels\n - rename Model -> AbstractModel according to convention\n - fixed some doc-blocks and comments\nPlanModel.php\n - change ::processPdf() for simplicity and ease of use\nPlanPdfModel\n - rename ::pdfMergeList() -> mergeList() because old name was redundant\n - change ::mergeList() realisation for simplicity\n - change ::mergePdf() visibility to local, now it used inside of ::mergeList()\n - add local ::preMerge() method what checks file extension and resolves absolute path of the file\n - add ::stagePriceToPdf() which converts each html page of stages to pdf\n - remove ::getMergeList() because of no need\nView\n - add a bunch of doc-blocks\n\nApp\n.gitignore\n - add storage/tmp to ignore","distinct":true,"url":"https://api.github.com/repos/beavercode/treatment_plan/commits/12c2de01b14101bd3039d73ad7a49bef97d694e6"},{"sha":"8157d902b58dcfc696f38d6e717f76afca06c12b","author":{"email":"e0ba1aadbd518ba09a5e78eb15de6a000e77f41a@gmail.com","name":"bbr"},"message":"Merge branch 'pdf_template_fixes' into dev","distinct":true,"url":"https://api.github.com/repos/beavercode/treatment_plan/commits/8157d902b58dcfc696f38d6e717f76afca06c12b"},{"sha":"c95164c8b7cbd289a36bd407c82df284dda2df03","author":{"email":"e0ba1aadbd518ba09a5e78eb15de6a000e77f41a@gmail.com","name":"bbr"},"message":"Create new config package based on some System methods.\n\np. Config\n - create abstract class AbstractConfig with fabric AbstractConfig::init()\n - create PhpConfig class for php array options\n\nApp\nbootstrap.php\n - change according to new config package\nSystem.php\n - move System::loadConf() -> AbstractConfig::load()\n - move System::getConfig() -> AbstractConfig::get()","distinct":true,"url":"https://api.github.com/repos/beavercode/treatment_plan/commits/c95164c8b7cbd289a36bd407c82df284dda2df03"},{"sha":"5670a745549897a7ef52162905ef1f45a6723e4c","author":{"email":"e0ba1aadbd518ba09a5e78eb15de6a000e77f41a@gmail.com","name":"bbr"},"message":"Add App class. Encapsulate settings options into Config class. Add some packages.\n\nCommon\n - new App class to run application\n - delete bootstrap.php because of it was replaced with App.php\n - change structure of Config package\n - use Config:$OPTION_NAME instead of global constants\n - new Logger package to handle message logging\n - cosmetic fixes: indentation, comments\n - change index.php: move check to App class\nApp.php\n - add ::noFavicon() to skip additional request for 'favicon.ico' if not exists\n - add ::checkVersion() to check minimal PHP version requirement\n - add ::checkExtensions() to check if extensions used in application is loaded\n - add ::phpSetup() which set ups PHP directives\n - add ::start() which runs application\n - add ::debugStart() and ::debugEnd() for memory and execution time measuring\nREADME.md\n - update extensions section\nconfig.php\n - add 'app.log.exceptions' which points directly on this type of log\np. Config\n - add class Config with static properties(constant are better, but prior to php 5.6 versions can not hold expressions) which stores setting options which stores  and can be access from any place\nAbstractConfig.php\n - change ::init() have additional parameter source directory which used along with dsn in child classes ctors\n - add ::generate() which populates Config class with options from data source(php file at this moment)\nPhpConfig.php\n - reflects parent class changes in methods signatures\n - add ::conf prop which stores array of configuration options\n - add ::dir prop which stores application source directory\n - implement ::generate() which create static properties of Config class\np. Logger\n - add AbstractLogger and 2 strategies: FileLogger - log to files, BrowserLogger - show messages to browser\n\nCore\n - delete System class because it was separated into Config and Logger libs","distinct":true,"url":"https://api.github.com/repos/beavercode/treatment_plan/commits/5670a745549897a7ef52162905ef1f45a6723e4c"},{"sha":"04568311d442c2ca562915682f67975501489bc1","author":{"email":"e0ba1aadbd518ba09a5e78eb15de6a000e77f41a@gmail.com","name":"bbr"},"message":"Delete not used files: bootstrap.php, index_old.php","distinct":true,"url":"https://api.github.com/repos/beavercode/treatment_plan/commits/04568311d442c2ca562915682f67975501489bc1"},{"sha":"10225907b0e6a1c523672eca1eb276e1ceea4b1e","author":{"email":"e0ba1aadbd518ba09a5e78eb15de6a000e77f41a@gmail.com","name":"bbr"},"message":"Change Config package: it create specific config class which generated flattened array of options.\n\nCommon\n - change/add new comment blocks\nApp.php\n - change according to new configuration package\nconfig.php\n - change structure to be more verbose about options\n\n Lib/Config\n  - add helper class for array flattening\n  - add ConfigData instead of Config\n  - remove Config because of bad architecture\n AbstractConfig.php\n  - remove ::get() because of bad architecture\n  - ::init() uses ::generate(); this is Template Method patterns\n PhpConfig.php\n  - change ::generate() to return ConfigData class\n ConfigData.php\n  - stores configuration options in array\n  - add ::get() to access options, if option no found thrown an error; this done to avoid unknown config options","distinct":true,"url":"https://api.github.com/repos/beavercode/treatment_plan/commits/10225907b0e6a1c523672eca1eb276e1ceea4b1e"},{"sha":"e40feeafbfedfc211096ed37f875d07769a57d17","author":{"email":"e0ba1aadbd518ba09a5e78eb15de6a000e77f41a@gmail.com","name":"bbr"},"message":"Change exception handling in File package to be more narrow.\n\nLib\\File\n - add FileException class\n File.php\n  - throw FileException instead of AppException","distinct":true,"url":"https://api.github.com/repos/beavercode/treatment_plan/commits/e40feeafbfedfc211096ed37f875d07769a57d17"},{"sha":"be1fe5e9ba9b5dedce4275548cc6eeb63724de5f","author":{"email":"e0ba1aadbd518ba09a5e78eb15de6a000e77f41a@gmail.com","name":"bbr"},"message":"Change exception handling in Logger package to be more narrow.\n\nLib\\Logger\n - add LoggerException class\nFileLogger.php\n - throws LoggerException but saves FileException as previous","distinct":true,"url":"https://api.github.com/repos/beavercode/treatment_plan/commits/be1fe5e9ba9b5dedce4275548cc6eeb63724de5f"},{"sha":"b831ddc6b37f2bbc05a3d5aa90a9de2611be8305","author":{"email":"e0ba1aadbd518ba09a5e78eb15de6a000e77f41a@gmail.com","name":"bbr"},"message":"Change annotation of exception throw by View::load()","distinct":true,"url":"https://api.github.com/repos/beavercode/treatment_plan/commits/b831ddc6b37f2bbc05a3d5aa90a9de2611be8305"},{"sha":"8b6f73fe01cde99c892b056df7846ffc8a748d7d","author":{"email":"e0ba1aadbd518ba09a5e78eb15de6a000e77f41a@gmail.com","name":"bbr"},"message":"Lib\\Config\nPhpConfig.php\n - rename ::$conf -> $configRaw to be more oblivious\n - change ::generate() because of changes in FlattenArrayPreserveKeysHelper::iterate()\nFlattenArrayPreserveKeysHelper.php\n - change ::iterate() be able to convert directory relate option values to absolute paths; add more parameters and checks\n - add ::key() for check if option is directory","distinct":true,"url":"https://api.github.com/repos/beavercode/treatment_plan/commits/8b6f73fe01cde99c892b056df7846ffc8a748d7d"}]}