Unable to resolve NULL driver Lumen 5.6 - email

In a development environment all works fine.
But in production, Lumen returns me Unable to resolve NULL driver [Illuminate\Mail\TransportManager]
After some research, I discovered that when I debug $app:
In both mode, all configurations is loaded.
["loadedConfigurations":protected]=>
array(5) {
["mail"]=> bool(true)
//other keys ...
}
But:
In development, the debug returns all my Lumen's configuration:
array(6) {
["app"]=>
*RECURSION*
["Laravel\Lumen\Application"]=>
*RECURSION*
["path"]=>
string(17) "/var/www/html/app"
["config"]=>
object(Illuminate\Config\Repository)#5 (1) {
["items":protected]=>
array(5) {
//all keys ...
}
On production (share hosting server), the debug doesn't return configuration's keys :
array(6) {
["app"]=>
*RECURSION*
["Laravel\Lumen\Application"]=>
*RECURSION*
["path"]=>
string(11) "/htdocs/app"
["config"]=>
object(Illuminate\Config\Repository)#5 (1) {
["items":protected]=>
array(0) {
//no keys
}
}
This is the reason for which Lumen doesn't find driver for the mailing.
Now I can't explain why Lumen ignores my configuration. Someone knows?
Thanks you,

I just found the reason of this problem.
In production, the server is case sensitive.
My directory was /Config and it need /config in lower case

Related

laravel/lumen-framework:"5.7.*" and flipbox/lumen-generator:"^5.6" Class Not Found

I think this is related to composer autoload not detecting packages outside laravel/lumen-framework/src
Is my above assumption to the below problem correct? Shall I include psr-4 key inside "autoload-dev" nested object?
I really appreciate your help.
Thanks.
Below is Error Exception, composer.json snippet and Stack Trace Logs
Below composer.json
{
...
"autoload": {
"classmap": [
"database/seeds",
"database/factories"
],
"psr-4": {
"App\\": "app/"
}
},
"autoload-dev": {
"classmap": [
"tests/"
]
},
...
}
Below is the stack trace log found under storage/lumen.log
[2018-10-09 07:51:53] local.ERROR: Symfony\Component\Debug\Exception\FatalThrowableError:
Class '\FlipBox\LumenGenerator\LumenGeneratorServiceProvider' not found in
/var/www/vendor/laravel/lumen-framework/src/Application.php:183
Stack trace:
#0 /var/www/bootstrap/app.php(86): Laravel\Lumen\Application->register('\\FlipBox\\LumenG...')
#1 /var/www/public/index.php(14): require('/var/www/bootst...')
#2 {main} {"exception":"[object] (Symfony\\Component\\Debug\\Exception\\FatalThrowableError(code: 0):
Class '\\FlipBox\\LumenGenerator\\LumenGeneratorServiceProvider' not
found at /var/www/vendor/laravel/lumen-framework/src/Application.php:183)
[stacktrace]
#0 /var/www/bootstrap/app.php(86): Laravel\\Lumen\\Application->register('\\\\FlipBox\\\\LumenG...')
#1 /var/www/public/index.php(14): require('/var/www/bootst...')
#2 {main}
"}
It was really a stupid mistake, after debugging and going to the north pole back and forth. I figured out that I had the class namespace referenced wrongly so instead of using below:
if ($app->environment() !== 'production') {
$app->register(FlipBox\LumenGenerator\LumenGeneratorServiceProvider::class);
}
I should have used small letter b instead of B so the below works:
if ($app->environment() !== 'production') {
$app->register(Flipbox\LumenGenerator\LumenGeneratorServiceProvider::class);
}
Then doing php artisan list you will get all the make:* goodies:
What really worked for me, was to run composer install or composer update, that installed dependencies that I had not yet installed (due to changes made by others by the use of GIT repository).

StreamEnabled table property causes Serverless failure

I'm using Serverless to deploy my AWS cloudformation stack. On one of my tables, I enable streams via "StreamEnabled": true. When this is enabled, I get an error on deployment: Encountered unsupported property StreamEnabled.
If I remove the property, I get a validation exception: ValidationException: Stream StreamEnabled was null.
I found a git issue that was addressed and apparently fixed (here), but after upgrading to v1.3, I'm still getting the same errors on deployment.
Can anyone lend insight as to what the issue may be?
It is enabled by default. You can check it from shell:
aws dynamodbstreams list-streams
{
"Streams": [
{
"TableName": "MyTableName-dev",
"StreamArn": "arn:aws:dynamodb:eu-west-2:0000000000000:table/MyTableName-dev/stream/2018-10-26T15:06:25.995",
"StreamLabel": "2018-10-26T15:06:25.995"
}
]
}
And:
aws dynamodbstreams describe-stream --stream-arn "arn:aws:dynamodb:eu-west-2:00000000000:table/MyTableName-dev/stream/2018-10-26T15:06:25.995"
{
"StreamDescription": {
"StreamLabel": "2018-10-26T15:06:25.995",
"StreamStatus": "ENABLED",
"TableName": "MyTableName-dev",
"Shards": [
{
"ShardId": "shardId-000000000000000-0000000f",
"SequenceNumberRange": {
"StartingSequenceNumber": "00000000000000000000000"
}
}
],
"CreationRequestDateTime": 1540566385.987,
"StreamArn": "arn:aws:dynamodb:eu-west-2:0000000000000000:table/MyTableName-dev/stream/2018-10-26T15:06:25.995",
"KeySchema": [
{
"KeyType": "HASH",
"AttributeName": "application_id"
}
],
"StreamViewType": "KEYS_ONLY"
}
}
It is not a solution, but found that fact I realized that I don't have an issue.

Migrating to Meteor 1.7.0.4 : MongoDB : "updating the path ... would create a conflict at ..."

Im using meteor, and im trying to go from meteor 1.6 to 1.7
But im encountering errors im unable to get informations about in my tests :
tests.jpg
I get multiple things like this (some are maybe redondant, unused or obsolete) :
Error: Updating the path 'relationChangeRate' would create a conflict at 'relationChangeRate'
at Function.MongoError.create (C:\Users\fquesselaire\AppData\Local\.meteor\packages\npm-mongo\3.0.11\npm\node_modules\mongodb-core\lib\error.js:45:10)
at toError (C:\Users\fquesselaire\AppData\Local\.meteor\packages\npm-mongo\3.0.11\npm\node_modules\mongodb\lib\utils.js:149:22)
at C:\Users\fquesselaire\AppData\Local\.meteor\packages\npm-mongo\3.0.11\npm\node_modules\mongodb\lib\collection.js:1029:39
at C:\Users\fquesselaire\AppData\Local\.meteor\packages\npm-mongo\3.0.11\npm\node_modules\mongodb-core\lib\connection\pool.js:544:18
at _combinedTickCallback (internal/process/next_tick.js:131:7)
at process._tickDomainCallback (internal/process/next_tick.js:218:9)
not occurring in 1.6.*
I tried upgrade my mongodb to 3.6.6, no effect.
Im also unable to get the entire stack in tests to see what is exactly enforcing.
my .meteor/versions :
255kb:meteor-status#1.5.0
accounts-base#1.4.2
accounts-password#1.5.1
akasha:fs-extra#0.26.3
alanning:roles#1.2.16
aldeed:autoform#6.3.0
aldeed:autoform-bs-button-group-input#2.0.0
aldeed:autoform-select2#3.0.1
aldeed:collection2-core#2.1.2
aldeed:template-extension#4.1.0
allow-deny#1.1.0
arillo:flow-router-helpers#0.5.2
autoupdate#1.4.1
babel-compiler#7.1.1
babel-runtime#1.2.4
base64#1.0.11
binary-heap#1.0.10
blaze#2.3.2
blaze-html-templates#1.1.2
blaze-tools#1.0.10
boilerplate-generator#1.5.0
caching-compiler#1.1.12
caching-html-compiler#1.1.3
callback-hook#1.1.0
check#1.3.1
coffeescript#1.0.17
cultofcoders:mocha#2.4.6
dburles:collection-helpers#1.1.0
dburles:factory#1.1.0
ddp#1.4.0
ddp-client#2.3.3
ddp-common#1.4.0
ddp-rate-limiter#1.0.7
ddp-server#2.2.0
deps#1.0.12
diff-sequence#1.1.0
dynamic-import#0.4.1
ecmascript#0.11.1
ecmascript-runtime#0.7.0
ecmascript-runtime-client#0.7.2
ecmascript-runtime-server#0.7.1
ejson#1.1.0
email#1.2.3
es5-shim#4.8.0
fourseven:scss#4.9.0
geojson-utils#1.0.10
hot-code-push#1.0.4
html-tools#1.0.11
htmljs#1.0.11
http#1.4.1
id-map#1.1.0
idmontie:migrations#1.0.3
jquery#1.11.11
kadira:blaze-layout#2.3.0
kadira:flow-router#2.12.1
lai:collection-extensions#0.2.1_1
launch-screen#1.1.1
livedata#1.0.18
lmieulet:meteor-coverage#1.1.4
localstorage#1.2.0
logging#1.1.20
matb33:collection-hooks#0.8.4
meteor#1.9.2
meteor-base#1.4.0
meteorhacks:picker#1.0.3
meteortesting:browser-tests#1.0.0
meteortesting:mocha#1.0.0
minifier-css#1.3.1
minifier-js#2.3.5
minimongo#1.4.4
mobile-experience#1.0.5
mobile-status-bar#1.0.14
modern-browsers#0.1.2
modules#0.12.2
modules-runtime#0.10.2
momentjs:moment#2.22.2
mongo#1.5.1
mongo-dev-server#1.1.0
mongo-id#1.0.7
mouse0270:bootstrap-notify#3.1.3
natestrauser:select2#4.0.3
npm-bcrypt#0.9.3
npm-mongo#3.0.11
observe-sequence#1.0.16
ordered-dict#1.1.0
ostrio:cookies#2.3.0
ostrio:files#1.10.1
practicalmeteor:chai#2.1.0_1
practicalmeteor:loglevel#1.2.0_2
practicalmeteor:mocha-core#1.0.1
practicalmeteor:sinon#1.14.1_2
promise#0.11.1
raix:eventemitter#0.1.3
random#1.1.0
rate-limit#1.0.9
reactive-dict#1.2.1
reactive-var#1.0.11
reload#1.2.0
retry#1.1.0
rocketchat:streamer#0.5.0
routepolicy#1.0.13
service-configuration#1.0.11
session#1.1.8
sewdn:collection-behaviours#0.3.0
sha#1.0.9
shell-server#0.3.1
socket-stream-client#0.2.2
softwarerero:accounts-t9n#1.3.11
spacebars#1.0.15
spacebars-compiler#1.1.3
srp#1.0.12
standard-minifier-css#1.4.1
standard-minifier-js#2.3.4
templating#1.3.2
templating-compiler#1.3.3
templating-runtime#1.3.2
templating-tools#1.1.2
tmeasday:check-npm-versions#0.3.2
tmeasday:test-reporter-helpers#0.2.1
tracker#1.2.0
ui#1.0.13
underscore#1.0.10
url#1.2.0
useraccounts:bootstrap#1.14.2
useraccounts:core#1.14.2
useraccounts:flow-routing#1.14.2
webapp#1.6.2
webapp-hashing#1.0.9
zimme:active-route#2.3.2
my node packages :
"dependencies": {
"#babel/runtime": "^7.0.0-beta.54",
"#mdi/font": "^2.5.94",
"babel-runtime": "^6.26.0",
"bcrypt": "^3.0.0",
"bootstrap": "^3.3.7",
"bootstrap-material-design": "^0.5.10",
"bootstrap-slider": "^10.0.2",
"bootstrap-toggle": "^2.2.2",
"clone": "^2.1.1",
"csv-parse": "^2.5.0",
"d3": "^5.5.0",
"file-saver": "^1.3.8",
"fs-extra": "^3.0.1",
"gm": "^1.23.0",
"jquery": "^2.2.4",
"jsondiffpatch": "^0.3.11",
"lodash": "^4.17.10",
"meteor-node-stubs": "^0.4.1",
"mkdirp": "^0.5.1",
"object-path": "^0.11.4",
"popper.js": "^1.14.3",
"select2": "^4.0.4",
"select2-bootstrap-theme": "^0.1.0-beta.10",
"simpl-schema": "^1.5.3",
"uuid": "^3.3.2",
"xmldoc": "^1.1.0",
"zip-local": "^0.3.4"
},
"devDependencies": {
"chromedriver": "^2.40.0",
"gulp": "^3.9.1",
"selenium-webdriver": "^3.6.0"
}
if you have any clue about what is going on ?
i can give more informations about what's happening in the app, but right now a simple explain about what this error mean would be awesome already. as i said, this error only append in 1.7.
EDIT: forget to say that my test throw this on WORKING code.
Features are working well, but not the tests.
EDIT²:
This method is the one that update the collection projectSettings.
_duplicateProjectSettings(newSession) {
const settings = this.session.projectSettings();
delete settings._id;
settings.sessionId = newSession._id;
const newSettings = newSession.projectSettings();
ProjectSettings.update(newSettings._id, { $set: settings });
}
relationChangeRate is a simpl-schema field of projectSettings collection as it (i use collection2-core) :
relationChangeRate: {
type: Number,
allowedValues: _.values(RelationRates),
defaultValue: 0.0
}
projectSettings extends mongo.collection, but in this case, update method is not override.
The code seams correct to me, as the _id is well removed and set to the new object before update request. but maybe im wrong ?
EDIT³:
ProjectSettings is a collection-helper:
Here is the code :
Sessions.helpers({
[...]
projectSettings() {
const conds = { sessionId: this._id };
return ProjectSettings.findOne(conds);
},
[...]
A collection helper basically add a method on each document from this collection. It means that any session object will have this method. In a collection helper, "this" refer to the current collection object.
so should be good ?
_duplicateProjectSettings could be write like this:
_duplicateProjectSettings(newSession) {
// const settings = this.session.projectSettings();
const settings = ProjectSettings.findOne({ sessionId: this.session._id });
delete settings._id;
settings.sessionId = newSession._id;
// const newSettings = newSession.projectSettings();
const newSettings = ProjectSettings.findOne({ sessionId: newSession._id });
ProjectSettings.update(newSettings._id, { $set: settings });
}
(I tried it too, same result)
Running this from shell worked for me... not the best solution. I had the problem when I tried to login with accounts-password package.
$ meteor mongo
meteor:PRIMARY> db.adminCommand( { setFeatureCompatibilityVersion: "3.4" } )
Ok,
This is an half-answer but
After some extended search i figured that i had a test script that reset MONGO_URL as follow :
set MONGO_URL=
set TEST_BROWSER_DRIVER=chrome
set TEST_WATCH=1
set TEST_CLIENT=0
set TEST_SERVER=1
meteor test -p 3100 --driver-package=cultofcoders:mocha %*
after figuring that i launched the tests on my local dev db, and tests passed (smashing my db by the way lol). So, it means it could be version related, or test-conditions related.
I am not able to print the version of mongodb used for tests, so i don't know the tests conditions exactly.
All i know is so :
Meteor "normal run" Mongo version : 3.6.4
My local Mongo version : 3.6.6

Vagrant Puppet Provisioning failure due declarative structure

As the title describes I am having an issue provisioning a box successfully. I am trying to install a development box (Apache, PHP and XDebug)
Everything works fine except for the point where I have to include the XDebug functionality, since it is not supplied in the original REPO I am installing it through the Example42/puppet-yum REPO manager.
In this part there is a mistake, since when I try to build the box from scratch I get the the error that package php-perl-xdebug is not available. This is because the repo's are not yet initialized. I have tried several ways to make sure that it would update the repo's before doing any other action. Referencing the classes by -> but this would yield in a looped block. Going through Google did not yield any practical results that would make sure that some commands are ran before others.
I believe it is possible to do this wit the "Required" command, but I could't find a way to use it.
Side note: We're mostly using example42 modules for our building.
Thanks in advance:
The following is the default.pp manifest for the application service.
default.pp
Exec { path => [ "/bin/", "/sbin/" , "/usr/bin/", "/usr/sbin/" ] }
class system-setup {
service { "iptables":
ensure => stopped,
}
}
class php-setup{
php::module { "pdo": }
php::module { "gd": }
# php::module { "fpm": }
php::module { "mysql": }
php::module { "soap": }
# php::module { "zts": }
# php::module { "pecl-apc": }
php::module { "pecl-memcache": }
php::module { "xml": }
php::module{ "pecl-xdebug": }
}
class apache-vhost {
apache::vhost { 'trunk.project.dev':
docroot => '/var/www/html/',
port => '80',
}
}
class { 'yum':
extrarepo => [ 'epel' ],
}
class { 'apache':
source => [ "puppet:///modules/apache/httpd.conf-project" , "puppet:///modules/apache/httpd.conf" ],
}
class { 'php' :
source => ["/vagrant/files/php.ini", "puppet:///modules/php/php.ini"],
}
include php-setup
include apache-vhost
You can put this somewhere:
Class['yum'] -> Package <||>
This is using a resource collector to make sure Class yum is done before any package is installed.

Which DoctrineBundle version works with Symfony 2.0.15?

I've spent days now trying to sort out my deps in Symfony 2.0.15. I can't find a compatible list of bundles and I've been chasing commits around github trying to follow a chain of non-BC changes to get a list of versions that works for me. Eventually I chose to give up and upgraded to composer, only to find that some of the Doctrine core requires Symfony 2.1, yet some of the other Doctrine bundles require Symfony <2.1 and eventually I gave up on that as well.
Can someone with the following Bundles installed please let me know what stable versions they are using from their deps.lock?
[symfony]
git=http://github.com/symfony/symfony.git
version=v2.0.15
[twig]
git=http://github.com/fabpot/Twig.git
version=v1.8.2
[monolog]
git=http://github.com/Seldaek/monolog.git
version=1.0.2
[doctrine-common]
git=http://github.com/doctrine/common.git
version=2.1.4
[doctrine-dbal]
git=http://github.com/doctrine/dbal.git
version=2.1.7
[doctrine]
git=http://github.com/doctrine/doctrine2.git
version=2.1.7
[swiftmailer]
git=http://github.com/swiftmailer/swiftmailer.git
version=v4.1.7
[assetic]
git=http://github.com/kriswallsmith/assetic.git
version=cc2e9adb744df0704a5357adc1cf9287c427420f
[twig-extensions]
git=http://github.com/fabpot/Twig-extensions.git
[metadata]
git=http://github.com/schmittjoh/metadata.git
version=1.0.0
[SensioFrameworkExtraBundle]
git=http://github.com/sensio/SensioFrameworkExtraBundle.git
target=/bundles/Sensio/Bundle/FrameworkExtraBundle
version=origin/2.0
[JMSSecurityExtraBundle]
git=http://github.com/schmittjoh/JMSSecurityExtraBundle.git
target=/bundles/JMS/SecurityExtraBundle
version=origin/1.0.x
[SensioDistributionBundle]
git=http://github.com/sensio/SensioDistributionBundle.git
target=/bundles/Sensio/Bundle/DistributionBundle
version=origin/2.0
[SensioGeneratorBundle]
git=http://github.com/sensio/SensioGeneratorBundle.git
target=/bundles/Sensio/Bundle/GeneratorBundle
version=origin/2.0
[AsseticBundle]
git=http://github.com/symfony/AsseticBundle.git
target=/bundles/Symfony/Bundle/AsseticBundle
version=v1.0.1
[doctrine-mongodb]
git=http://github.com/doctrine/mongodb.git
[doctrine-mongodb-odm]
git=http://github.com/doctrine/mongodb-odm.git
[DoctrineMongoDBBundle]
git=http://github.com/doctrine/DoctrineMongoDBBundle.git
target=/bundles/Symfony/Bundle/DoctrineMongoDBBundle
version=v2.0.1
[DoctrineMigrationsBundle]
git=https://github.com/doctrine/DoctrineMigrationsBundle.git
target=/bundles/Symfony/Bundle/DoctrineMigrationsBundle
version=origin/2.0
[doctrine-migrations]
git=http://github.com/doctrine/migrations.git
[doctrine-fixtures]
git=http://github.com/doctrine/data-fixtures.git
[DoctrineFixturesBundle]
git=https://github.com/doctrine/DoctrineFixturesBundle.git
target=/bundles/Symfony/Bundle/DoctrineFixturesBundle
version=origin/2.0
[DoctrineBundle]
git=http://github.com/doctrine/DoctrineBundle.git
target=/bundles/Doctrine/Bundle/DoctrineBundle
[FOSJsRoutingBundle]
git=http://github.com/FriendsOfSymfony/FOSJsRoutingBundle.git
target=/bundles/FOS/JsRoutingBundle
[GedmoDoctrineExtensions]
git=http://github.com/l3pp4rd/DoctrineExtensions.git
target=/gedmo-doctrine-extensions
[StofDoctrineExtensionsBundle]
git=http://github.com/stof/StofDoctrineExtensionsBundle.git
target=/bundles/Stof/DoctrineExtensionsBundle
With these combinations I get a constant set of errors due to classes not existing or renamed methods, which I then look up in the github repositories and try to fix to a commit/tag which resolves this error, only to get another set of errors because of other classes not existing or renamed methods. I can't go back to the stable state I had a few weeks ago because of the namespace changes to the Doctrine organisation - (#see What happened to Doctrine's Symfony Bundle repos?)
Alternatively I don't mind switching to composer; heres the composer.json that I tried, but doesn't work
{
"require": {
"symfony/symfony" : "v2.0.15",
"symfony/doctrine-bridge": "2.1.x-dev",
"doctrine/common" : "2.1.4",
"doctrine/orm" : "2.1.6",
"symfony/finder" : "v2.0.15",
"symfony/assetic-bundle" : "2.0.x-dev",
"twig/extensions" : "dev-master",
"jms/security-extra-bundle" : "1.0.x",
"sensio/framework-extra-bundle" : "2.0.x-dev",
"sensio/distribution-bundle" : "2.0.x-dev",
"sensio/generator-bundle" : "2.0.x-dev",
"doctrine/doctrine-bundle": "v1.0.0-beta1",
"doctrine/mongodb-odm-bundle": "v2.0.1",
},
"autoload": {
"psr-0": {
"Oh": "src/"
}
}
}
Whenever I try to fix dependencies in the composer.json I seem to get in a cycle of upgrading and degrading the same packages over and over again but always getting the error "Your requirements could not be solved to an installable set of packages.". If someone could provide me with their composer.json setup using Symfony 2.0.15 with the Doctrine,MongoDB,DoctrineFixtures and DoctrineMigrations bundles I'd be most grateful.
Here's part of my working composer configuration:
{
"require": {
"php": ">=5.3.3",
"symfony/symfony": "2.0.15",
"doctrine/orm": "2.1.7",
"twig/extensions": "*",
"symfony/assetic-bundle": "2.0.x-dev",
"sensio/generator-bundle": "2.0.*",
"sensio/framework-extra-bundle": "2.0.*",
"jms/security-extra-bundle": "1.0.*",
"stof/doctrine-extensions-bundle": "*",
"doctrine/doctrine-migrations-bundle": "2.0.*"
}
}
I'm not using ODM though.