Comments (10)
@itsmemattchung @Alorel
Added composer.json (used "https://github.com/Alorel/dropbox-v2-php/blob/master/composer.json" as template :) ).
However since Composer does not support check or installation of system packages a post install script is triggered. I am not confident in how I defined the autoloader setup, feedback is appreciated.
from mts.
Absolutely. I am exploring the best way to solve dependencies and install the lib.
Thx Martin
from mts.
The project depends on 2 programs "screen" and "python". Optionally "sudo" if sudo is available it can be configured to make getting root access easier than passing root credentials.
I have looked around and i cannot find any dependency management tool that includes the ability to add system level packages. Composer can list the available packages but not install .
Composer would be fine to ensure the correct PHP version and OS version, but it would not be able to i.e. trigger 'apt-get install screen' or edit '/etc/sudoers' if the user wanted sudo support.
Do you know of any managers that can handle the process end to end? Otherwise does it not make more sense to create a CLI installation script to remove the dependance on a webserver?
from mts.
i updated MtsSetup.php so it can be run on the CLI without a browser installed.
from mts.
A definite +1 on supporting composer - yes, it does not offer a function to require specific system packages to be installed, but neither does reading the README.md.
The best way to check if the packages are installed I can think of is doing a
trigger_error('message', E_USER_ERROR);
either when the user attempts to perform an operation and receives an output implying that a required package is missing, or by executing a dummy file via shell at the top of your library's PHP files once and checking if the operation exited with code 0.
The 2nd approach would add extra overhead, but could be "cached", e.g. if the test passed, create an empty file in the library's directory and, the next time the library is included, simply check if the file exists instead.
from mts.
Hi Alorel,
I will work on composer support, in the mean time did you see the segment of the Readme regarding installation? It was located at the very bottom, which in hind sight might have been a mistake. I moved it to the top.
from mts.
I did and it's all straightforward - the main aim of my post was to suggest some possible options for your first reply. :)
from mts.
Thanks for the update!
The spl_autoload_register code block could be moved to composer.json assuming your classes and namespaces follow the PSR4 specification (i.e. package name + class name = file path, case-sensitive). You could, therefore, have the following in your composer.json:
{
"autoload": {
"psr-4": {
"MTS\\": "MTS"
},
"files": [
"MTS/EnableMTS.php"
]
}
}
EDIT: fixed the json
from mts.
@Alorel the namespace is psr-4 compliant. But I am not sure maintaining the constants in the file and allowing composer to handle auto loading of classes is the most flexible option. Anyone installing the library outside of Composer would need to supply an autoloader for MTS to function.
But i appreciate the quick feedback :)
from mts.
In that case keeping the autoloader within EnableMTS.php is most likely the best solution. :)
from mts.
Related Issues (20)
- Could not determine OS distribution HOT 2
- How to install MTS manually without PHP automation install (MtsSetup.php) ? HOT 7
- Why getElement() show different result? HOT 2
- Regarding Two way verification issue. HOT 5
- error excecuting command HOT 3
- License HOT 4
- Call to a member function getPathAsString() on boolean HOT 6
- Bash::shellStrExecute>> Read data timeout HOT 2
- Don't enforce connection via username:password HOT 8
- Fatal error HOT 12
- How to enable the web driver? HOT 1
- Error when connecting... HOT 4
- Arm board. CentOs on raspberry 2 HOT 1
- Remote powershell doesn't return any data HOT 1
- Class 'MTS\Factories' not found HOT 1
- Execute Script Over SSH via a Jumpbox HOT 15
- Fatal error: Uncaught Exception Could not determine OS version HOT 4
- Powershell not available on localHost HOT 8
- Read registry values from remote PC with credentials (username,password) HOT 1
- Error Not Handled for Request Type: connectByUsername HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mts.