We just brought in a commit today that requires use of composer and npm to build OpenEMR packages (to bring in 3rd party packages/assets and build the styling sheets). btw, thank you @d3sandoval for doing the huge amount of work that was required to get this.
The demos and automatically built packages already go through the needed building steps.
If you are a developer and are using the most recent codebase, then the following commands will build your openemr instance (.gitignore will ignore the built stuff): composer install npm install npm run build composer dump-autoload -o
Depending on your workflow, there are also other neat ways to build out the package for developer/tester use that we can discuss. One example is the docker environment, of which the package will be built out by one of the dockers, if needed (ie. if the vendor directory is missing): openemr/README.md at master Ā· openemr/openemr Ā· GitHub
Also, this improvement has removed use of bower from the project (and was replaced with npm).
Again, thank you @d3sandoval for this amazing feat!!!
If you wish to build a finished package (ie. remove a couple things that are not needed that were created in the steps above) and donāt want to rely on the official packages that are already built daily, then the following steps will do that (this is just an example is the user is root) (note that composer global is a way to install packages that are not related to openemr): composer global require phing/phing /root/.composer/vendor/bin/phing vendor-clean /root/.composer/vendor/bin/phing assets-clean rm -fr node_modules
Hi,
The project infrastructure has been ironed out to support these changes now. Had a couple issues in the docker demo farm, which is why it was a bit unstable last couple days, which has been fixed. And the dev docker (5.0.2-dev) now works from the new codebase.
-brady
Thereās a new PR out now with more documentation on how to work with these tools (+ docker) locally. Itās already sped up my local development significantly
I ran the composer and npm stuff in a Mint 19 system with PHP 7.2, and then installed the resulting package on a Debian 9 system with PHP 5.6. Setup worked fine but then on login this error is logged:
$ composer info
ā¦
doctrine/annotations v1.6.0 Docblock Annotations Parser
doctrine/cache v1.8.0 Caching library offering an object-oriented API for many cache backends
doctrine/collections v1.5.0 Collections Abstraction library
doctrine/common v2.7.3 Common Library for Doctrine projects
doctrine/couchdb 1.0.0-beta4 CouchDB Client
doctrine/dbal v2.6.3 Database Abstraction Layer
doctrine/inflector v1.3.0 Common String Manipulations with regard to casing and singular/plural rules.
doctrine/instantiator 1.1.0 A small, lightweight utility to instantiate objects in PHP without invoking their constructors
doctrine/lexer v1.0.1 Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.
doctrine/orm v2.5.14 Object-Relational-Mapper for PHP
ā¦
and that fixed the Doctrine errors, but now I have this error on login:
[Sat Sep 15 21:31:44.200117 2018] [:error] [pid 20726] [client 103.217.166.107:8045] PHP Fatal error:
Class āOpenEMR\Common\Logging\Loggerā not found in
/[ā¦]/services/VersionService.php on line 47
I could turn on the demo farm 18.04 development demo to build a package for download, which we can then download and check whether that line of code has a public in it.
Just let me know if you want me to do that.
My web server is also running PHP 5.6.37. Iām very puzzled that youāre not getting the āpublicā modifier.
I can tell you I installed composer (and npm) from the Synaptic package manager, wondering if that matters. Yes Mint 19 is based on Ubuntu 18.04 so that test may be worthwhile.