SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Das Zend Framework

Das Zend Framework zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Entwicklung und Softwaredesign
Hilfe Community Kalender Heutige Beiträge Suchen

PHP Entwicklung und Softwaredesign Hier können strukturelle (Programmier-) Konzepte diskutiert und Projekte vorgestellt werden

 
 
Themen-Optionen Ansicht
  #1  
Alt 12.04.2008, 16:52:08
Benutzerbild von Socrates
Socrates Socrates ist offline
Member
 
Registriert seit: Jul 2006
Ort: Göttingen/Deutschland
Alter: 35
Beiträge: 586
Aufbau Repository Klasse

Morgen!
Ich bin gerade dabei eine Klasse, aufbauend auf einer Klasse, die Verbindungen zu einem FTP-Server herstellt, zu schreiben. Diese Klasse soll bei der Verwaltung bzw. Installation von Packages, die auf einem anderen Server liegen, helfen. Bei den Vorüberlegungen für eine solche Klasse haben sich mir einige Fragen gestellt. Doch erst zu den bisherigen Überlegungen.

Die Klasse soll folgende Funktionen enthalten:
  • die *.csv-Datei auslesen, in der die Repository-Server stehen
  • von diesen Servern die control.csv mit den Package-Informationen auslesen
  • die Package-Informationen zerlegen und als Array zurückgeben
  • einen Download auf den eigenen Server von ungeschützten Packages ermöglichen
  • einen Download auf den eigenen Server von geschützten Packages ermöglichen
  • einen Upload von neuen Packages ermöglichen
  • in die control.csv die neuen Package-Informationen eintragen
  • einen Repository-Server in die Liste hinzufügen

Nun steht natürlich die Überlegung im Raum, ob man nicht diese Aufgaben in zwei Klassen aufteilen sollte oder nicht. Eine Klasse, die für die Übertragung der Packages zuständig ist und eine Klasse die für den Programmierer neuer Pakete den Upload und die Änderungen in den Konfigurations- und Informations-Dateien erleichtert.

Des weiteren könnte man sich überlegen, ob man nicht noch eine übergeordnete Klasse ExtendedRepository anlegt, die auf meiner TarHandler Klasse aufbaut. Diese Klasse würde dann die heruntergeladenen Packages (im *.tar-Format) in einen gleichnamigen Ordner entpacken. Das weitere Verfahren mit diesen Dateien soll nun nicht Teil meiner Überlegungen sein.

Nun zu den Problemen, die sich mir bei meinen Gedanken offenbart haben.

Es wird eine *.csv-Datei geben, die die Informationen für alle bekannten Repository-Server enthält. Sollte dies tatsächlich eine *.csv-Datei sein? Wie soll diese Datei aufgebaut sein? Was darf wie in dieser Datei stehen? Bei alledem ist zu beachten, dass es geschützte und öffentliche Repository-Server geben soll. Zudem würde ich mich nebst der Vorschläge für die Strukturierung dieser Datei auch über Hilfe für den passenden RegEx-Code freuen.

Auf jedem der Repository Server liegt nebst den Packages noch eine Datei control.csv, die die Informationen zu den einzelnen Packages enthält. Im Folgenden habe ich eine Beispiel-Datei gebastelt und würde nun gerne von euch wissen, ob die dort enthaltenen Informationen ausreichend sind und wie hier der Regex-Code aufgebaut sein müsste.

control.csv
package: nested-sets
version: 1.0.1
depends: navigation-tool, ranking-tool, article-tool
suggests: button-designer
installed-Size: 5
author: Andreas Wilhelm <andreas@mail.de>
description: package that is base for navigation-management


Das kursiv geschriebene gibt es für jedes Package. Die Informationen werden durch einen Absatz von einander sichtbar getrennt.

Die einzelnen Packages sind, wie bereits erwähnt Tarballs, die, wahrscheinlich von einer Klasse ExtendedRepository heruntergeladen und in einer gleichnamigen Ordner temporär entpackt werden. Ist dies geschehen wird eine, in diesem Ordner enthaltene, install.php aufgerufen, die alle benötigten Datenbanken erstellt, Einträge vornimmt, Rechte zuweist etc. und abschließend den Ordner und sich selbst löscht (wenn das geht).

Wo ich gerade bei den Packages bin fällt mir ein, dass ich noch nicht wirklich eine Ahnung habe, wie ich eine Datei vom einen Server auf den anderen übertragen soll, ohne diese Meldung für den Client zu erzeugen. Wie kann ich also eine Bestätigung durch den Client verhindern?

Wäre euch sehr dankbar für Ideen und Anregungen sowie Hilfe bei den verschiedenen Fragen.
MfG, Andy
__________________
BSc. Applied Computer Science
http://www.bornageek.com

Geändert von Socrates (12.04.2008 um 16:53:22 Uhr)
Mit Zitat antworten
 


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Frage zum Aufbau einer PHP Seite ascer PHP für Fortgeschrittene und Experten 0 16.02.2008 03:30:14
Kann eine Klasse in einer Eigenschaft ein Objekt, einer anderen Klasse instanzieren? Balthazzar PHP für Fortgeschrittene und Experten 6 06.07.2006 16:06:36
Klasse in Klasse aufrufen wollenschlaeger PHP für Fortgeschrittene und Experten 4 14.07.2005 13:05:32
Andere Klasse aus Klasse aufrufen NanoCyte PHP für Fortgeschrittene und Experten 22 28.06.2004 21:24:53
Blätterfunktion als Klasse! Funjoy PHP Entwicklung und Softwaredesign 0 24.06.2004 23:45:04


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:30:17 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt