Comments (3)
Could we compute it and store the result of this in a file somewhere? During mod install, we can recompute this data.
from smf.
I've been thinking about that since @albertlast suggested the same thing on the discussion boards. At this point, though, I'm thinking no. The BackwardCompatibilty::exportStatic() method is only intended to provide aliases for deprecated functions and variables that were part of vanilla SMF. Installing or uninstalling mods will never change that list of global functions and variables. That list is, in fact, completely invariant. So we can just hard code the exported function and property names and call it a day.
I might even centralize the list into the BackwardCompatibilty trait itself, rather than having it scattered among all the various classes definitions. Having it distributed that way was helpful while I was in the midst of the OOP rewrite, but now that that's done, there's probably no need to keep it that way.
Moreover, there are some things that would be easier if we have a centralized list. In particular, there is a bit of a bootstrapping problem with the distributed list. Right now, if a mod wants to call a deprecated function that is defined (via BackwardCompatibilty) in a class that has not been loaded yet, we have to do some silly stuff in order to load the class on the fly. (All those vestigial backward compatibility files littering the codebase are part of that silliness, for example.) If we have a single, centralized list of properties and methods, we can declare them all at once without worrying about the bootstrapping problem or any other silliness.
from smf.
For those who might be interested, I explored the idea of having a centralized list, as outlined in my previous comment. It turned out to be more trouble than it was worth.
from smf.
Related Issues (20)
- [2.1]: Notication emails for reply not sent if user also subscribe for the board HOT 2
- [3.0]: MariaDB doesn't have "REGEXP_LIKE" HOT 1
- [3.0]: Upgrade doesn't work HOT 2
- [3.0/2.1]: Installing packages/themes does not parse line breaks for the XML tags. HOT 1
- [3.0]: Upgrade breaks after backup due to User::$me not being initialized
- [3.0]: New columns not being added to tables HOT 1
- [3.0]: Calling pg_version() with default connection is depracated as of PHP 8.1
- [3.0] Installer needs General language file? HOT 17
- [3.0]: Error while adding holidays
- [3.0]: Adding calendar event can cause max_execution_time to be exceeded HOT 3
- [3.0]: No option to delete events
- [3.0]: Undefined variable $is_os HOT 10
- [3.0]: Installer does not provide minimum database version upon failure due to unsupported version. HOT 2
- [3.0]: Config::getTempDir() is defaulting to sys_get_temp_dir HOT 1
- [2.1 & 3.0]: PHP Fatal error: Uncaught Error: Interface "MatthiasMullie\PathConverter\ConverterInterface" not found HOT 2
- [3.0]: Installer - Line #1604: Field 'exdates' doesn't have a default value HOT 2
- [3.0]: Cannot send PM - "You have an error in your SQL syntax;"
- [3.0]: "You have an error in your SQL syntax" trying to update profile HOT 1
- [2.1 & 3.0]: Merged topic link is broken
- [3.0]: Suggestion - consistent encoding HOT 1
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 smf.