RedBeanPHP uses class naming convention um ein Modell an eine Tabelle zu binden. Ich kann diese Namenskonvention nicht einhalten, da ich ein Projekt habe, bei dem Tabellennamen nicht in Stein gemeißelt sind. Ich brauche eine Möglichkeit, eine RedBean_SimpleModel
mit einem Tabellennamen ohne die Namenskonvention zu verbinden - Wie mache ich das?Gibt es Alternativen zur Namenskonvention RedBean/Fuse Model?
3
A
Antwort
6
OK, ich habe eine Lösung gefunden, während ich durch die API documentation ging. Ich kann meinen eigenen "Model Formatter" setzen, was bedeutet, dass ich eine Klasse erstellen kann, die dafür zuständig ist, den Namen einer Tabelle mit dem Namen einer Klasse zu verbinden. Mein RedBean-Setup-Code sieht jetzt so aus:
# Redbean
require('vendor/redbean/rb.php');
R::setup("mysql:host=".MYSQL_HOST.";dbname=".MYSQL_DATABASE.";",
MYSQL_USERNAME, MYSQL_PASSWORD);
# Set custom model formatter
class CustomRedBeanModelFormatter implements RedBean_IModelFormatter
{
public function formatModel($model)
{
switch($model)
{
case foo\bar\OmniDataManager::TABLE_DATA:
return 'foo\bar\OmniDataModel';
case foo\bar\OmniDataManager::TABLE_GROUP:
return 'foo\bar\OmniDataGroupModel';
default:
return false;
}
}
}
$customRedBeanModelFormatter = new CustomRedBeanModelFormatter();
RedBean_ModelHelper::setModelFormatter($customRedBeanModelFormatter);
Es ist ein bisschen eine hässliche Lösung. Ich würde viel lieber der Lage sein, so etwas zu tun:
RedBean_ModelHelper::setModelForTable($modelName, $tableName);
Aus diesem Grund werde ich auf diese Kennzeichnung als die richtige Antwort für eine Weile warten.
Verwandte Themen
- 1. Gibt es Alternativen zur "klassischen" Cookie-Authentifizierung?
- 2. Gibt es Alternativen zur Git-Binärdatei?
- 3. Gibt es Alternativen zur Implementierung von Clone in Java?
- 4. Gibt es Alternativen zur Java-PDF-Erstellung für iText?
- 5. Welche Alternativen gibt es zur UML, um Softwaremodelle grafisch darzustellen?
- 6. Welche anderen Alternativen zur log4net-Protokollierung gibt es?
- 7. Gibt es sicherere Alternativen zur .Net SQLConnection-Klasse?
- 8. Gibt es Alternativen zu svn_load_dirs.pl?
- 9. Gibt es Alternativen zu Gigaspaces?
- 10. Gibt es Alternativen zum WCFTestClient?
- 11. Gibt es Alternativen zu py2exe?
- 12. Gibt es Alternativen zu FastSharp?
- 13. Gibt es eine Namenskonvention für Git-Repositories?
- 14. Gibt es eine Namenskonvention für implizite Klassen?
- 15. Gibt es eine Namenskonvention für Keystore (Java)
- 16. Alternativen zur Web-Anwendung?
- 17. Gibt es Alternativen zu BoxedApp SDK?
- 18. Gibt es gute Alternativen für Visio/PowerPoint?
- 19. Gibt es Alternativen zu Mechanize in Python?
- 20. Gibt es leichte Alternativen zu gSOAP?
- 21. Funktioniert Dojo offline? Gibt es Alternativen?
- 22. Gibt es kostenlose Alternativen zu Silktest?
- 23. Kompatibilität von EGit - oder gibt es Alternativen?
- 24. Gibt es irgendwelche würdigen CSLA-Alternativen?
- 25. Gibt es Alternativen zu IDA Pro?
- 26. Gibt es Alternativen zur Verwendung von OpenCVs Imdecode? Es ist zu langsam
- 27. Open-Source-Alternativen zur Orakelkohärenz?
- 28. Gibt es Alternativen für die Datenvalidierung von Benutzereingaben?
- 29. Gibt es eine Namenskonvention für länderspezifische statische Dateien?
- 30. Gibt es eine bestimmte Dateistruktur/Namenskonvention für Partials in Stylus?