Nanofire 1.0
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
applikation
arbeit
code
fehler
funktion
halten
http
index
meinung
modul
paar
projekt
sagen
standard
system
typ
url
webseite
wissen
zugriff
-
Ich habe schon ne weile ein eigenes CMS auf Text-Datenbank-Form mit einer PHP5 Datenbank-Klasse entwickelt und zum Downloaden auf http://www.nanofire.de.vu bereitgestellt und würde hier gerne eure Meinungen zu diesem System hören.
Noch einiges zum System:
-Es ist modulbasiert, also es ist möglich zB ein Modul zu erstellen mit einer Navigations-Administration aber auch einem HTML Editor (TinyMCE)
-Metadaten sind einmalig einstellbar unter dem Kontrolzentrum, genauso wie die Daten für das Impressumsmodul
-Logindaten etc., also die Verwaltungsadministrationen sind alle unter dem Link Kontrollzentrum und der Rest ist eigentlich nur noch Module(erstelle,ändern,sortieren, Inhalte ändern)
-ich habe jQuery in manchen Administrationen eingebunden, was heißt dass Javascript nicht ausgeschaltet sein darf
Auf mehr glaube ich muss ich nicht hinweisen^^ -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
1. Kein GitHub Repo. Überhaupt kein Repo. Für ein OS Projekt ganz böse, das hat mich beinahe davon abgehalten den Code anzusehen.
2. Der Code verfolgt keine vernünftigen Coding Standards (vernünftig sind Zend und Pear und alles was in etwa danach aussieht.)
Und damit hat sich das Thema für mich schon erledigt ;) -
Also meinste weil ich kein MVC unter anderem nutze, ist es doof? Es ist eine meiner Meinung nach vieles abdeckende Applikation.
-
Ich glaube man muss hier etwas unterscheiden.
Wenn das dein erstes PHP Projekt war und du dir das PHP-Schreiben selbst beigebracht hast ist es soweit ok.
Wenn du schon länger PHP Schreibst und du bereits irgendwelche Kurse besucht hast. Ist es wirklich schlecht.
Es gibt in den weiten des Internets schon einigen schlechten Code und ich muss es leider sagen. Dein Projekt gehört definitiv dazu.
Du hast echt jeden Vorteil den dir PHP5 bietet einfach in den Müll geworfen und einfach alles zusammengetragen was man in PHP5 nicht mehr benutzen sollte.
zum Beispiel:
Du hast bestimmt schon bemerkt das mit PHP5 register_globals off ist. Wieso baust du es dann wieder nach?
foreach($_GET as $key=>$value){ if(trim($this->get)=='')$this->get=$key; ... }
Deine Namensgebung ist eine Katastrophe. Mal deutsch mal englisch.
function content() function ausgabe() $c $ddb $gg $a_id
In 2-3 Monaten wirst du die Bedeutungen vergessen haben und dann verbrauchst du Stunden wieder alles durchzulesen.
Ich habe jetzt einfach zufällig irgend eine Codestelle ausgesucht. Wenn du in paar monaten Änderungen machen musst wirst du dir die Haare ausreisen.
foreach($scans as $scan)if(substr($scan,-10)=='.class.php')$typs.='<option value="'.substr($scan,0,-10).'">'.substr($scan,0,-10).'</option>'; $zugriffs='<option value="0,1">'.$guest.' & '.$member.'</option><option value="0">'.$guest.'</option><option value="1">'.$member.'</option>'; include'ausgabearten.php';$ausgabes='';if(is_array(@$db))foreach($db as $a_id=>$aart)$ausgabes.='<option value="'.$a_id.'">'.htmlentities($aart).'</option>'; else $ausgabes='<option value="0"><div class="{{{TYP}}} modul"><h3>TITLE</h3><div>CONTENT</div></div></option>'; $lsc=scandir('langs');$langs='';
Wirklich leserlich. Ein paar Zeilenumbrüche und Einrückungen hätten wirklich nicht geschadet.
Würdest du einen content-typ mit charset=utf-8 benützen könntest du dir diese Funktion sparen
private function umlaute($s) { $s=str_replace(array('Ä','Ö','Ü','ä','ö','ü','ß'),array('Ä','Ö','Ü','ä','ö','ü','ß'),$s); return $s; }
und wieso hast du die Funktion Private gesetzt? Wenn sie schon nötig ist dann würde public mehr Sinn haben.
$this->zugriff ist sowieso von anfang leer. Gut das es mit der Funktion zugriff() nochmals mit 0 füllst. Da return 0; am Schluss ist wird return 1; aus deiner if Abfrage sowieso überschrieben.
$this->zugriff=$this->zugriff(); } private function zugriff(){ if(@$_SESSION['admin']===true){ if($this->get=='logout'){ unset($_SESSION['admin']); header('Location:index.php'); } return 1; } return 0; }
Ich habe mir jetzt nur die admin/index.php und admin/klassen/module.class angeschaut und könnte jetzt noch unzählige andere Fehler aufführen. Sogar wie man deine Login abfrage umgeht und gleich ohne login/passwort eingeloggt wird. Aber das lasse ich jetzt mal lieber weg.
Für dich erfüllt dein Code bestimmt alle Anforderungen. Aber versuch mal dein CMS einem Freund zu geben und gib ihm die Aufgabe damit eine funktionsfähige Webseite aufzusetzen. Wenn dein freund es ohne nachfragen Schaft eine Webseite zu erstellen kannst du es ruhig veröffentlichen. Ansonsten ist es nur eine Hilfe für dich.
So kommen wir zum Abschluss. Es gibt viele gute PHP-Bücher und du solltest dir wirklich überlegen noch einige Zeit mit diesen zu lernen und anhand derer dein CMS auf einen einigermassen akzeptablen zustand zu bringen. Mit einem guten Konzept hinter dem CMS könnte es dann vielleicht auch etwas werden.
Beitrag zuletzt geändert: 23.12.2010 23:13:51 von frnkymen -
@frnkymen: vielen Dank für diese ausführliche Erklärung mit den Verbesserungsvorschlägen!
Das mit den Zeilenumbrüchen kann man nicht wiedersprechen, da hast du vollkommen Recht, ebenso in der Namensgebung mit deutsch und englisch. Witzigerweise obwohl ich schon eine Weile mit Eigenlernen(paar Jahre) zu tun hatte, ist mir noch nicht aufgefallen, wie das gehen sollte mit dem Umgehen des Logins oder ich bin einfach nur blind. Schade dass du gerade das nicht gesagt hast.
Ich weiß nicht mal wieso, aber das mit utf8 habe ich bisher wohl irgendwie versäumt.
Du sprichst als bist du extrem erfahren, kommst mir so rüber, es wäre daher nice, wenn du dir das wirklich antun würdest und mein System weiter durchgehst und mich auf meine Verbesserungsstellen aufmerksam machen könntest, welche ich selbst nicht erkenne.
Ich danke dir noch einmal für deine Kritik mit Beispielen und Vorschlägen und würde es am liebsten weiter haben.
Zwar gibt es schon eine Version 1.1 aber die Fehler werden vermutlich im größten Teil gleich bleiben. Wozu also noch eines veröffentlichen.
Wenn ich mit allen Vorschlägen geübt habe, werde ich mich sicher erneut an ein System setzen. Wieviele Fehler ich dann bloß auf der Arbeit mache? :D
Könntest du das mit dem PHP5 in Müll treten mir zuliebe noch mal besser erklären? Ich bin offen für Neues und freue mich, mich noch verbessern zu können :-)
LG
Beitrag zuletzt geändert: 24.12.2010 0:12:29 von nanofire -
Ich hab die Lücke jetzt nicht aufgeführt damit nicht jeder einfach in deine Projekte eindringen kann... Denn das wäre echt unschön bis du das gefixt hast. Aber du kannst mich gerne privat fragen, dann kann ich es dir auch erklären.
Macht nichts manchmal sieht man den Wald vor lauter Bäumen nicht :).
Solange du dein CMS weiterentwickelst und damit weiter lernst ist es überhaupt nicht schlimm weitere Versionen rauszubringen.
Du solltest dich vielleicht etwas einschränken und dein CMS für den privaten Gebrauch benutzen. Sowie nicht gleich X Kunden Lizenzen verkaufen sowie es jedem anderen anbieten. Zumindest solange bis du es auf einen gewissen technischen Standard gebracht hast.
Wieviele Fehler ich dann bloß auf der Arbeit mache?
. Soll das heisen du arbeitest mit dem wissen als PHP Developer?
Das mit dem in den Müll treten war vielleicht etwas grob aber ich wollte damit nur sagen das du eher abgestandenes PHP4 benutzt und kaum was von PHP5 zu sehen war obwohl du in deinem Post und deiner Webseite auf PHP5 hinweist.
Ich werde dir jetzt nicht dein ganzes CMS Korrigieren und jeden einzelnen Fehler erklären. Aber du kannst mich gerne per pm anschreiben und ich werde mal schauen ob ich ein paar Lektüren zusammentragen kann die dich auf den richtigen weg bringen.
Grüsse
Frnkymen
Beitrag zuletzt geändert: 24.12.2010 1:09:01 von frnkymen -
ja ich arbeite in einer kleinen Firma in Kiel mit diesem Wissen als PHP Entwickler, es nennt sich bei mir IT Systemkaufmann im Schwerpunkt Programmierung. Aber mein Stand hebt dennoch das Niveau der PHP-Applikationen dort, was bedeutet, der Chef kann das so gut wie garnicht. Ich lern eigentlich nur über die Schule oder durch mich selbst dazu.
Dass du nicht das ganze CMS durchgehen willst, hätt ich mir denken können, war auch etwas weit hergeholt von mir :-)
Aber danke für alles bisher. Ich schau mir mal einige Projekte an die PHP5 nutzen, so lerne ich am besten.
LG -
Also meinste weil ich kein MVC unter anderem nutze, ist es doof? Es ist eine meiner Meinung nach vieles abdeckende Applikation.
Das meine ich gar nicht. Das man kein MVC nutzt ist vollkommen verständlich. Für kleine Projekte ist es meistens Overkill und für große ist es dann das falsche ^^. Was ich meine ist die Code-Formatierung selbst. Es gibt in der Programmierung bestimmte Standards wie Code formatiert werden muss.
Es gibt einige Sachen, die man immer einhalten sollte. So ist es beispielsweise empfehlenswert immer nur eine Anweisung pro Zeile schreiben. Oder den gesamten Code Englisch zu halten.
Aber auch das ist nicht alles. Normalerweise ist alles von Bezeichnung von Variablen bis hin zu der Benutzung von Whitespace genau geregelt. In der PHP Welt gibt es zwei (recht ähnliche) Standards an die man sich auch in etwa halten sollte. Einmal der Zend Coding Standard und der PEAR Coding Standard. Du solltest dir beide mal ansehen und entscheiden was dir besser gefällt und dich dann auch daran halten. So erleichtertest du allen anderen deinen Code zu entziffern. -
@nikic: achso okay, dann sorry für mein anfahren :-) vielen Dank für deine Links, ich werde mich nach der weihnachtszeit mal damit befassen. Mein Wissen in PHP scheint ja echt noch weit am anfang zu stehen. Naja wie solls auch anders sein, wenn man damit schon den Chef übertrifft und die, die Ahnung hatten, in anderen Betrieben einem bei einem Praktikum nie was zeigten. Niemand von allen Programmierern, denen ich begegnet bin, hatte aber von solchen Codingstandards erzählt, was mir aber schon recht eigenartig erscheint. Aber da ich gerade an MVC-lernen bin, habe ich noch eine weiter frage: wieso soll MVC in kleinen ungünstig und in großen Projekten auch nicht gut sein? Kannst du mir vllt anhang eines kleinen Beispiels oder so das erläutern? Wäre sehr dankbar.
LG -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage