× Please submit new Bug Reports on GitHub: github.com/Jensen-Technologies/component-creator-issues/issues

Fatal error: Cannot declare class - Joomla 3.7

7 年 6 个月 前 #1575 Søren Beck Jensen
Replied by Søren Beck Jensen on topic Fatal error: Cannot declare class - Joomla 3.7
Thank you for that update. I think what happened was that your component was built using Component Creator before we added the auto loader (that now broke). If that is the case, you may have to include it yourself as described.

Søren Beck Jensen
Founder, Component-Creator.com

Please 登录注册一个帐号 to join the conversation.

7 年 6 个月 前 #1576 Gosling Cools
Replied by Gosling Cools on topic Fatal error: Cannot declare class - Joomla 3.7
I want 3 beers as well! ;-)
The following user(s) said Thank You: Søren Beck Jensen

Please 登录注册一个帐号 to join the conversation.

7 年 6 个月 前 - 7 年 6 个月 前 #1577 Carl Willingham
Replied by Carl Willingham on topic Fatal error: Cannot declare class - Joomla 3.7
N.A.
Last edit: 7 年 6 个月 前 by Carl Willingham. 理由: Found the issue

Please 登录注册一个帐号 to join the conversation.

7 年 6 个月 前 - 7 年 6 个月 前 #1578 Randy Carey
Replied by Randy Carey on topic Fatal error: Cannot declare class - Joomla 3.7

Can you please tell us which change in Joomla 3.7 caused this and any other compatibility break?

Joomla 3.7 introduced a new check that prevents two classes to have the same name (even though the documentation still says the two should be named the same way)


I see that core has named its admin helper class differently, of this pattern: ExampleHelper instead of ExampleHelperExample or ExampleHelperExampleadmin.

Further, I discovered a new dependency upon this naming pattern for this class. In order to add the new custom fields feature to a component, a plugin expects a component's admin helper class to have certain functions available to it, and it expects that helper class to follow the naming pattern: ExampleHelper. I discovered this when trying to add the new custom fields feature to an extension that I newly created with ComponentCreator. I was able to get the new feature to work (within the CC-created extension) by creating the needed helper class (ExampleHelper), adding the new functions used by custom fields, and having it extend the CC-created helper class (ExampleHelperExampleadmin).

I do not know all the details that led CC to choose the solution it did (ExampleHelperExampleadmin), but from what I'm seeing, this file/class name seems to stray from the "core" approach, and I suspect it will cause problems should anyone want to add the custom fields feature to a CC-created component. I may be wrong, and if so, please correct me. But I do want to give you a "heads up" to what I think I'm seeing.
Last edit: 7 年 6 个月 前 by Randy Carey.
The following user(s) said Thank You: Søren Beck Jensen

Please 登录注册一个帐号 to join the conversation.

7 年 6 个月 前 #1579 Søren Beck Jensen
Replied by Søren Beck Jensen on topic Fatal error: Cannot declare class - Joomla 3.7
That is some good investigation there. We are looking into it. It is strange as "ExampleHelper" does not follow the standard Joomla naming convention for the JLoader and so custom fields have implemented this incorrectly it seems. But as I said... let us investigate this properly and get back to you.

Good work!

Søren Beck Jensen
Founder, Component-Creator.com

Please 登录注册一个帐号 to join the conversation.

7 年 6 个月 前 - 7 年 6 个月 前 #1581 Søren Beck Jensen
Replied by Søren Beck Jensen on topic Fatal error: Cannot declare class - Joomla 3.7
Using only "ExampleHelper" breaks the auto loader functionality in Joomla so we recommend instead to add the lines:
// Ensure custom fields compatibility
class ExampleHelper extends ExampleHelpersExampleadmin {}

To the bottom of your helper file if you are using custom fields.

Søren Beck Jensen
Founder, Component-Creator.com
Last edit: 7 年 6 个月 前 by Søren Beck Jensen.

Please 登录注册一个帐号 to join the conversation.

创建页面时间:0.057秒
核心: Kunena 论坛

We use cookies so that you can place orders and we can provide a better service. You can control the use of cookies at the individual browser level. If you reject cookies, you may still use our website, but your ability to use some features or areas of our website may be limited.