it can be mixed with other code, but the only reason for that would be legacy stuff from my perspective, otherwise I don’t see any advantages, unless you need extended stack, e.g. using some code/tools SS doesn’t have


SilverStripe is actually a framework as well, CMS is a module on top of it, so it can be used without the CMS module as well and do all things back-end only (without the pages, sitetree etc.)

👍 (1)

Hey guys, is there any advantage to using a PHP framework like Laravel in conjunction with SilverStripe?


3.7 should be still supported for such level bug fixes, if they appear to be legit


reports that is, not requests 😄


above seems related to the first link - my problem is that any object created using the factory pattern (create) is treated as a singleton which I don't think is correct (it's essentially the opposite of the problems stated in the links)

Also, from what I can see SS3 only accepts security & critical bug requests now, doubt this counts as either


Also https://github.com/silverstripe/silverstripe-framework/issues/1575 for reference

Show 1 attachment(s)

created by: https://github.com/chillu|@chillu (ischommer)
created at: 2012-08-23
original ticket: http://open.silverstripe.org/ticket/7808|http://open.silverstripe.org/ticket/7808

singleton() in 2.4 passed the constructor args "null, true" to any object it created.
For most of them, this wouldn't have any effect, but for DataObject the second arg
equated to the $isSingleton boolean. When the flag was set, it didn't call populateDefaults().
So admittedly hacky, but has been there since the dawn of time.

With the introduction of the Injector API in 3.0, this behaviour changed,
no constructor args are passed any longer, meaning poplateDefaults() is called on ALL DataObject singletons.
The problem was uncovered by a modification to how Translatable creates SiteConfig records, see https://github.com/silverstripe/silverstripe-cms/pull/181|silverstripe/silverstripe-cms#181.

In general, I don't see a problem with calling populateDefaults() on a singleton,
although we'd need to mark it as an API change.
populateDefaults() shouldn't cause any state changing actions beyond
its own in-memory object state, so that's a problem needing to be fixed in the Translatable pull request.

Hamish, Sam, Marcus - do you agree?

Hide attachment content

Thanks for finding that bug... https://slackarchive.silverstripe.org/slack-archive/channel/C0QSDASKT/?message=225977&start=0#msg_225977

Show 1 attachment(s)
Slack Archive - Channel: general | SilverStripe Users Slackarchive

SilverStripe Community Slack archive. general: If you have any SilverStripe related questions, please supply the version of Framework you're using. Did you flush? :toilet: = :all_the_things: CoC: Archive: :unidash:

Hide attachment content

@ed Open an issue on github if there isn't one - sounds like a legitimate regression :)