Hi Ina,

I actually like the idea and understand why it is necessary to
increase shop stability. However, I feel that this needs to be
enforced at a core level instead of just being mentioned in a wiki.
i.e. OXID/PHP should *prevent* a module from loading if it touches
part of the private API. Otherwise, you're still going to get a load
of crackpots like me wildly extending things without checking/caring
about the wiki.

But, at the moment, there are many 'disallowed' classes that contain
methods that could still be considered part of the public API. Would
it not be a better idea to block *some* specific methods instead of
blocking specific classes?

Maybe you could just mark them as final if they shouldn't be extended?
http://php.net/manual/de/language.oop5.final.php


Regards

Dave



On Wed, Aug 27, 2014 at 11:34 AM, Ina El-Kadhi
<ina.el-ka...@oxid-esales.com> wrote:
> Hi Joscha,
>
> thanks  very much for your feedback.
>
> I am answering directly because this is for us a very important issue.
>
> It could be argued that there are two types of classes in the OXID core –
> classes that make sure that the OXID framework works and classes that either
> provide functionality or hooks for enhancing functionality.
>
> In order to minimise risks to project application stability, it is important
> that in principle everything to do with the framework is not endangered by
> using any extraneous code, which changes framework behaviour, as it is then
> not guaranteed that the application as a whole still works.
>
> On top of that, with the previous procedure, it was sometimes impossible to
> fix framework bugs in patches, as according to OXID versioning semantics,
> these bug fixes would have constituted BC breaks because in principle all
> code is part of the public interface. This meant either hot fixes (which may
> lead to versioning problems during shop updates) or leaving known bugs
> unfixed for a longer period of time.
>
> Coming up with the list of classes that should not be overwritten was our
> first answer for solving these issues.
>
> Having said that, it might of course necessary to tweak the new process a
> little – e.g. change the granularity of stuff that should not be overwritten
> etc. We don't want to make life harder but rather the opposite :)
> But in order to be able to do that, we need information. As you pointed out,
> we don't know in detail what problems all the different agencies with their
> totally different projects face in project implementation – we need to be
> told.
>
> Looking forward to further input,
> all the best,
> ina
>
> Ina El-Kadhi
> Head of Development eShop Platform
>
> ina.el-ka...@oxid-esales.com
> Fon +49 761 36889-188
> Fax +49 761 36889-29
> Mobile +49 151 1423 3099
> www.oxid-esales.com
>
>
> OXID eSales AG
> Bertoldstraße 48
> 79098 Freiburg
> Deutschland
>
> Vorstand: Roland Fesenmayr (Vorsitzender), Andrea Seeger
> Vorsitzender des Aufsichtsrats: Michael Schlenk, Sitz: Freiburg
> Amtsgericht Freiburg i. Br., HRB 701648, USt-IdNr.: DE231450866
>
>
> Von: Joscha Krug | marmalade GmbH <k...@marmalade.de>
> Antworten an: <dev-general@lists.oxidforge.org>
> Datum: Wed, 27 Aug 2014 11:01:28 +0200
> An: <dev-general@lists.oxidforge.org>
> Betreff: Re: [oxid-dev-general] Core OXID eShop classes: must not be
> extended
>
> Hi Linas,
>
> we hav an very important module that will be released open source in the
> next week.
> With that module it will finally be possible to version module settings in a
> project.
>
> It has to extend oxUtilsObject which has an own loop to ensure that it is
> overloadable.
>
> So we take your note very serious, but in some points you can't imagigine
> what makes problems in projects and what we as an agency had to do to fix /
> solve that.
>
> I will keep you updated! :-)
>
> Best regards,
>
> Joscha
>
> //---------
>
> Joscha Krug
> marmalade GmbH
>
> www.marmalade.de
> k...@marmalade.de
>
> Leibnizstr.25
> 39104 Magdeburg
> GERMANY
>
> phone: +49 (0) 391 / 559 22 104
> fax:      +49 (0) 391 / 559 22 106
> Am 25.08.2014 14:54, schrieb Linas Kukulskis:
>
> Hi, all
>
> Not all classes of the OXID eShop are part of the public interface (public
> API).
>
> Some classes offer core OXID framework functionality, which ensure that the
> OXID eShop (including extensions that have been written according to our
> guidelines) work as expected. Extending these core classes in modules or in
> individual eShop customizations therefore engenders the risk of breaking
> core functionality.
>
> As these classes are not part of the public OXID API, they may be changed in
> patches and are not part of the deprecation procedure.
>
> Please ensure that none of your modules or customizations extend any of
> these classes.
>
> A list of the classes and how they are marked in code may be found:
> http://wiki.oxidforge.org/Tutorials/Core_OXID_eShop_classes:_must_not_be_extended
>
> Linas Kukulskis
> Software Developer
>
> linas.kukuls...@oxid-esales.com
> Fon +49 761 36889-0
> Fax +49 761 36889-29
> www.oxid-esales.com
>
> OXID eSales AG
> Bertoldstraße 48
> 79098 Freiburg
> Deutschland
>
> Vorstand: Roland Fesenmayr (Vorsitzender), Andrea Seeger
> Vorsitzender des Aufsichtsrats: Michael Schlenk, Sitz: Freiburg
> Amtsgericht Freiburg i. Br., HRB 701648, USt-IdNr.: DE231450866
>
>
>
> _______________________________________________
> dev-general mailing list
> dev-general@lists.oxidforge.orghttp://dir.gmane.org/gmane.comp.php.oxid.general
>
>
> _______________________________________________ dev-general mailing list
> dev-general@lists.oxidforge.org
> http://dir.gmane.org/gmane.comp.php.oxid.general
>
> _______________________________________________
> dev-general mailing list
> dev-general@lists.oxidforge.org
> http://dir.gmane.org/gmane.comp.php.oxid.general
_______________________________________________
dev-general mailing list
dev-general@lists.oxidforge.org
http://dir.gmane.org/gmane.comp.php.oxid.general

Reply via email to