Entièrement Orienté Objet, framework en PHP
Je veux créer un 100% orienté objet, framework en PHP avec aucune programmation procédurale à tous, et où tout est un objet. Un peu comme Java, sauf il sera fait en PHP.
Tous les pointeurs à ce que les caractéristiques de cette chose doit avoir, devrait-il utiliser un des modèles de conception tels que MVC? Comment la création d'objets pour chaque table de la base de données, il serait possible, et comment l'affichage de modèles HTML etc serait fait?
Veuillez ne pas accéder à un cadre existant parce que je veux le faire sur mon propre principalement de l'apprentissage excercise. Vous sera être downvoted pour la liaison à un cadre existant en tant que votre réponse et en disant "ce n'est ce que vous voulez'.
Certaines fonctionnalités que j'aimerais avoir sont:
- Très facile CRUD de génération de la page
- AJAX basé sur la pagination
- Ajax basé sur la validation du formulaire, si possible, ou très facile de validation de formulaire
- Sortable tables
- Capacité à modifier les modèles HTML à l'aide de PHP
- Pourquoi les downvotes? Pour demander une véritable programmation question?
- Comment allez-vous faire entièrement la programmation orientée-objet avec un script? On a même qui n'est pas statique type de variables. Lorsque vous obtenez ce cadre fait, je pense que vous aurez recréé le Java. Si vous obtenez ce fait, je serais ravi de voir un vrai OO script.
- PHP 5 prend en charge les variables statiques, je suis sûr que
- +1 pour être assez fou pour essayer cette.
- Seulement travaillé avec PhP 4, et en vertu de protestation à qui.
- Si votre question est: quelles doivent être les caractéristiques de votre framework web que vous sont en train d'inventer avoir? N'est-ce pas ce genre de pour vous? Entendez-vous plutôt: "quelles sont les caractéristiques que vous les gars comme dans un framework php"?
- PHP5 prend en charge les variables statiques, je pense que la seule chose importante qui rend moins OO puis d'autres langues n'est qu'une classe ne peut avoir sur les parents.
- en fait java peut aussi avoir 1 seul parent
- Upvote, oh mon mauvais je suppose que son C++ c'est de cette façon. Aussi je pense que PHP peut être la base de Java, de sorte qu'ils devraient être similaires, à droite?
- Je pense que ce qui rend php moins OO, c'est que vous ne pouvez pas avoir des interfaces et des paquets. Ou pouvez-vous avoir des interfaces?
- PhP est écrit dans le langage C, ce qui n'est pas OO. Vrai OO signifie que TOUT doit être un objet. Java lui-même défie ce avec son support de primitives. Donc, si votre langue prend en charge les primitives, il n'est pas VRAI OO. Le fractionnement des poils, je sais, mais Java est juste la plupart du temps OO. Smalltalk est plus OO
- Quand j'ai dit que PHP est basé sur Java je voulais dire, l'a été similaire, non pas qu'il a été écrit en Java. Pour info, PHP est un langage faiblement typé, mais permet l'utilisation de primitives dans sa syntaxe et c++ d'ailleurs.
- Ne faites pas comme des rails et de générer du code javascript, s'il vous plaît.
- Rails génère du javascript?
- je ne veux pas que les types primitifs d'être l'Objet de toute façon, cela ne ferait que générer de la frustration et différent de ce que vous avez fait tout au long de. Mais en Java vous /peut/ avoir primitives comme des objets si vous voulais
- Bon cadres ne pas commencer tant que produit - ils évoluer comme partagé nbeeds & solutions sont vus à travers de multiples applications. Sans le savoir, de l'expérience, ce qui a vraiment besoin d'un générique de mise en œuvre et ce qui devrait être spécifiques à l'application, comment envisagez-vous de définir ce qui doit l'abstraction?
- avez-vous créé ?
- Heh, pas. J'y ai pensé mais il n'y a pas de bonne façon de le faire. Je suis en train de migrer vers Java à la place.
Vous devez vous connecter pour publier un commentaire.
J'ai traversé beaucoup de problèmes sur votre liste, alors permettez-moi de spec la façon dont je le manipuler. Je suis également de la programmation orientée objet addict et de trouver l'objet de techniques extrêmement souple et puissant mais élégant (si cela est fait correctement).
MVC - oui, les mains vers le bas, MVC est un standard pour les applications web. Il est bien documenté et compréhensible modèle. Par ailleurs, il n'sur le niveau d'application de ce que la POO n'sur le niveau de la classe, qui est, il garde les choses séparées. Belle addition à MVC est L'Interception De Filtre modèle. Il aide à joindre des filtres pour le pré - et le post-traitement de la demande et la réponse. Utilisation courante est l'enregistrement des requêtes, l'analyse comparative, l'accès de la vérification, la mise en cache, etc.
OOP représentation de tables de base de données/lignes est également possible. J'utilise DAO ou ActiveRecord sur une base quotidienne. Une autre approche de l'ORM questions est Ligne De Données De La Passerelle et Table Data Gateway. Voici exemple de mise en œuvre de TMD en utilisant
ArrayAccess
interface.Modèles HTML peut aussi être représentés comme des objets. J'ai une utilisation Afficher les objets en conjonction avec le moteur de template Smarty. Je trouve cette technique TRÈS flexible, rapide, et facile à utiliser. Objet représentant la vue doivent mettre en œuvre
__set
méthode de sorte que chaque propriété obtient propagée dans de template Smarty. En outre__toString
méthode doit être mis en œuvre pour soutenir les points de vue de nidification. Voir l'exemple:Contenu de
view/status-bar.tpl
:Contenu de
view/page.tpl
:De cette façon, vous avez seulement besoin de
echo $page
et le point de vue interne (barre d'état) sera automatiquement transformé en HTML. Regardez mise en œuvre complète ici. Par la manière, en utilisant l'un de l'Interception des Filtres, vous pouvez envelopper le retour de vue avec HTML, pied de page et en-tête, de sorte que vous n'avez pas à vous soucier de retour complet de la page à partir de votre contrôleur.La question de savoir si l'utilisation d'Ajax ou pas ne devrait pas être important au moment de la conception. Le cadre doit être suffisamment souple pour un soutien Ajax en mode natif.
De validation de formulaire est certainement la chose qui peut être fait dans OO manière. Construire des complexes du programme de validation de l'objet à l'aide de Diagramme Composite. Composite valideur doit parcourir les champs de formulaire et affecté simple validateurs et de vous donner de réponse Oui/Non. Il doit également retourner des messages d'erreur de sorte que vous pouvez mettre à jour le formulaire (via Ajax ou le rechargement de la page).
Une autre pratique élément est de la traduction automatique en classe pour la modification des données en db à être adapté pour l'interface utilisateur. Par exemple, si vous avez INT(1) champ en db booléenne représentant de l'état et de l'utilisation de case à cocher dans le HTML que les résultats de la chaîne vide ou
"on"
dans _POST ou _GET tableau, vous ne pouvez pas affecter l'une dans l'autre. Avoir un service de traduction qui modifie les données pour être adapté à la Vue ou pour la db est un moyen propre de la désinfection des données. Aussi, la complexité de la traduction de classe n'est pas la litière de votre contrôleur de code, même pendant de très transformations complexes (comme une conversion de la syntaxe Wiki en HTML).Aussi i18n problèmes peuvent être résolus en utilisant les techniques de programmation orientée objet. J'aime utiliser
__
fonction (double trait) à la délocalisation des messages. La fonction au lieu d'effectuer une recherche et de retourner message me donne un Proxy objet et pré-enregistre un message pour plus tard de recherche. Une fois le Proxy de l'objet est poussé dans la Vue ET la Vue est convertie en HTML, i18n backend n'a pas l'air pour tous les pré-inscrits des messages. De cette façon, une seule exécution d'une requête qui renvoie toutes les demandes de messages.Accès controll les questions peuvent être abordées à l'aide de Business modèle de Délégué. J'ai décrit dans mon d'autres Stackoverflow répondre.
Enfin, si vous souhaitez jouer avec du code existant qui est entièrement orienté objet, prenez regarder Tigermouse cadre. Il y a quelques diagrammes UML sur la page qui peut vous aider à comprendre comment les choses fonctionnent. N'hésitez pas à prendre plus de la poursuite du développement de ce projet, que je n'ai pas plus de temps pour travailler dessus.
Ont une belle piratage!
Maintenant, au risque d'être downvoted, tandis que dans le même temps, étant quelqu'un qui est de l'élaboration de leur propre cadre de référence, je me sens obligé de vous dire d'obtenir au moins une certaine expérience en utilisant les cadres existants. Il n'a pas à être une grande quantité d'expérience peut-être faire quelques tutoriels pour débutant chacun de ceux populaire.
Compte tenu de la quantité de temps qu'il faut pour construire un bon cadre, en prenant le temps de regarder ce que vous aimez et détestez sur les solutions existantes pâle en comparaison. Vous n'avez même pas besoin de regarder des frameworks php. Rails, Django, etc sont tous populaires pour une raison.
La construction d'un cadre est gratifiant, mais vous avez besoin d'un plan clair et la compréhension de la tâche à accomplir, qui est là est un travail de recherche.
Quelques réponses à vos questions:
De la création de votre propre cadre de référence est un bon moyen d'acquérir une appréciation de certaines des choses qui pourrait se passer sous le capot d'autres cadres. Si vous êtes un perfectionniste comme moi, il vous donne une bonne excuse pour agoniser sur tous les petits détails (par exemple, se doit cet objet d'être appelé X ou Y, dois-je utiliser une méthode statique ou à une méthode d'instance pour cela).
J'ai écrit mon propre (presque complètement OO cadre il y a un moment), voici donc mon conseil:
En fin de compte, à moins que vos besoins sont particuliers, la plupart des gens seront plus productifs s'ils adoptent un cadre existant. Mais réinventer la roue n'en apprendra plus sur roues.
Au risque de paraître désinvolte, ce me semble, comme tous les autres logiciels du projet, en ce sens:
Vous devez définir vos exigences clairement, y compris la motivation et les priorités:
POURQUOI faire cela? Quels sont les principaux avantages que vous espérez à réaliser? Si la réponse est "speed", vous pouvez faire une chose, si c'est "facilité de codage" vous pourriez faire un autre, si c'est "expérience d'apprentissage", vous pouvez faire un thid
quels sont les principaux problèmes que vous essayez de résoudre? Et qui sont les plus importants? De sécurité? Facile de l'INTERFACE utilisateur de génération? L'évolutivité?
La réponse à "ce que les fonctions qu'il doit avoir" dépend vraiment de réponses à des questions comme celles ci-dessus.
Ici sont mes suggestions:
Maintenant, mes raisons:
de StackOverflow Podcast # 3.
Donc, vous épargner un peu de temps, et de travailler sur quelque chose qui résout un problème pour les gens comme une application web qui permet aux gens de mettre à jour automatiquement Twitter quand leur chat litière besoins de nettoyage. Le problème de "l'Orienté Objet PHP Framework" est fait. Quel cadre vous claque ensemble ne sera jamais aussi fiable ou utile ou riche en fonctionnalités de l'librement disponible, entièrement pris en charge des infrastructures disponibles aujourd'HUI.
Cela ne signifie pas que vous ne pouvez pas avoir une expérience d'apprentissage, mais pourquoi le faire dans le noir, la création d'un cadre qui grandiront dans un inutile blob de code, de vous laisser sans rien à montrer pour votre temps? Développer une application web, quelque chose pour les gens à l'utiliser et en profiter, je pense que vous trouverez l'expérience incroyablement enrichissante et ÉDUCATION.
Comme Jim OHalloran dit, la rédaction de votre propre cadre de référence vous donne un très bon aperçu de la façon dont les autres cadres de faire les choses.
Cela dit, j'ai écrit une couche d'accès aux données avant que la quasi-complètement abstraction de loin SQL. Le code de l'Application peut demander de l'objet concerné et la couche d'abstraction du fait plein de magie pour récupérer les données que lorsqu'il en a besoin, n'est-ce pas inutilement re-chercher, sauvé que quand il a été changé, et pris en charge de mettre certains objets sur différentes bases de données. Il a également pris en charge des bases de données répliquées, et respecté le retard de réplication, et avait un système intelligent d'objet de collection. Il était aussi très extensible: le cœur a été paramètre de moteur, et je pourrais ajouter un tout nouvel objet avec environ 15 lignes de code, et a obtenu toute la magie gratuitement.
J'ai aussi écrit un CRUD moteur de mise en forme qui a été utilisé pour un pourcentage considérable d'un site. Le noyau a été paramètre piloté par risquerait donc de liste et de modifier des pages pour rien, une fois que vous avez écrit une liste de paramètres. Automatiquement, il fait de la pagination, enregistrez-nouvelle-supprimer soutien, etc, etc, l'effet de levier le calque de l'objet ci-dessus. Il n'était pas orientée objet en lui-même, mais il pourrait avoir été fait de la sorte.
En d'autres termes, un framework orienté objet en PHP n'est pas seulement possible, il peut être très efficace. Ce fut en PHP 4, BTW, et je me suis cognée contre ce qui était possible avec PHP 4 objets une couple de fois. 🙂
Je n'ai jamais eu autant qu'une centrale d'expédition qui a appelé les objets, mais je n'étais pas loin. J'ai travaillé avec plusieurs cadres de le faire, et le fichier de mise en page peut s'arracher les cheveux rapidement. Pour cette raison, je pencherais pour un système de répartition qui n'est aussi complexe qu'il faut et pas plus. Une simple action/vue (ce qui est presque MVC de toute façon) devrait vous obtenir plus d'assez loin.
J'ai d'abord commencé à créer mon propre cadre de référence avec les mêmes idéaux pour votre propre. Cependant, après une couple de mois, j'ai réalisé que j'étais re-création d'un travail qui a été fait de nombreuses fois. En fin de compte j'ai trouvé un framework open source qui est facilement extensible et utilisée comme base pour mon propre développement.
Les fonctionnalités que je me suis mis en œuvre:
Les fonctionnalités dont j'ai regardé et de la pensée, de l'oublier! Je vais construire au-dessus de quelqu'un elses:
Bien sûr, l'écriture d'un cadre supérieur de l'open source options est possible, mais pourquoi voulez-vous la peine?
Il est vrai que certains développeurs de réinventer la roue pour aucune bonne raison. Mais, car il y a déjà de bons cadres de autour de ne pas dire que c'est une perte de temps à faire un vous-même. J'ai commencé sur un il ya un moment avec aucune intention de l'utiliser pour quelque chose de plus qu'un exercice. Je vous recommande fortement de le faire.
J'ai le lien parfait pour vous, mon ami: http://nettuts.com/tutorials/php/creating-a-php5-framework-part-1/. C'est un super tutoriel, j'ai regardé, et il n'est pas trop écrasante. Plus regardez autour de PHP section de ce site, j'ai vu un article sur CRUD. Comme pour l'AJAX regarder ailleurs, mais vous devez commencer quelque part, et ce tuto est génial.
Note: ce tutoriel est découpé en 3 parties et je pense qu'il apporte MVC dans la deuxième tranche, mais commence la première partie à l'aide d'autres méthodes.
Le seul, point de vente énorme, je chercherais dans un nouveau cadre, c'est qu'il ferait de l'écriture testable code facile.
Généralement, nous travaillons avec Zend Framework, et c'est surtout impressionnant, mais en essayant de l'unité de test/test drive ZF code n'est pas loin de masochisme.
Si vous pouvez fournir un cadre qui remplace le MVC pièces de ZF avec quelque chose qui nous permet d'écrire du code testable, tout en nous permettant d'utiliser la bibliothèque de pièces de ZF, je vais - littéralement - vous acheter une bière.
Je vais acheter de vous deux bières si vous fossé de l'AJAX. Il y a un énorme fossé entre un OO framework PHP et d'un framework JavaScript.
Je ne vais pas, j'ai commencé à écrire mes propres fins d'apprentissage, et a pris un coup d'oeil à certains de la majorité des cadres, et même avec mon peu de connaissances voir autant d'erreurs et de mauvaises idées.
Elles sont construites par les développeurs, pas les utilisateurs finaux.
Je suis en aucune façon dire que je pourrais écrire mieux que les "grands garçons", mais j'ai (ainsi que la plupart d'entre vous j'imagine) pourrait rappeler pourquoi certaines choses qu'ils font est mal, même si c'est juste parce que ils ne sont pas à l'utilisateur final/le non-développeur sympathique...
Je me demande comment votre cadre est en train de faire, 6 ans sur?
Êtes-vous encore à travailler dessus? Avez-vous arrêter?
Devriez-Vous Écrire Votre Propre Cadre
C'est probablement un peu tard pour vous, mais pour quelqu'un d'autre, de la rédaction de votre propre cadre de référence est une chose fantastique à faire pour des fins d'apprentissage.
Si, toutefois, vous êtes désireux d'en écrire un autre que l'apprentissage, parce que vous ne pouvez pas travailler hors de celui que vous utilisez, ou parce que c'est trop lourd, alors ne le faites pas!
Croyez-moi, et ne pas être insulté, vous ne seriez pas ici la contempler, si vous êtes bien informé assez développeur de le faire avec succès!
L'année dernière, je voulais apprendre la programmation orientée objet/classes, et les plus avancés de PHP.
Et l'écriture de mon propre cadre de référence a été la meilleure chose que j'ai fait (suis encore en train de faire), comme je l'ai appris bien plus que ce que je pensais.
Le long de la façon dont je l'ai appris (pour n'en nommer que quelques-uns):
L'Injection de dépendance, PRS
de telle manière qu'elle fait beaucoup de choses logique et facile. Pour une
exemple voir Wiki - SOLIDE
de manière appropriée (comme il n'y a aucune façon de l'utiliser, il suffit de guides
et les meilleures pratiques).
commentant les compétences
des pratiques communes).
Et de nombreux autres PHP de base des choses qui vous viennent invariablement au hasard de la lecture de quelque chose.
Tout cela, non seulement considérablement amélioré ma connaissance de PHP et les choses qui viennent avec elle, à un niveau plus avancé, mais aussi quelques-uns dans le commerce/largement utilisé des méthodes et des principes.
Et ce d'autant stimulé ma confiance dans l'utilisation de PHP en général, qui à son tour rend plus facile à apprendre.
Pourquoi Écrire un Cadre Pour Apprendre Tout Ce
Lorsque vous démarrez, vous apprendrez les notions de base - Un (variables), alors B (comment écrire une fonction de base), etc.
Mais il ne faut pas longtemps quand vous êtes à essayer d'apprendre des choses plus avancées, qu'à apprendre et à utiliser, D et E, vous avez également à apprendre et à comprendre, F, G, H et J, et à connaître ceux que vous savez, K, L et M, et de connaître les parties de L et de M vous devez d'abord comprendre N et O...
Il devient un champ de mines que d'essayer d'apprendre une chose amène la nécessité de d'abord apprendre quelques choses d'autres, et ces autres choses apportent souvent une nécessité pour comprendre les diverses autres choses.
Et vous finissez par un mile de l'endroit où vous avez commencé, votre esprit de picotements et de tir des étincelles, et environ 20 onglets ouverts tous avec diverses avancées de PHP choses, aucun de qui vous êtes à 100% à l'aise avec.
Mais au fil du temps, avec de la pratique, et très certainement dévouement, il va tout mettre en place, et vous aurez l'air de retour au code, même une collection de fichiers/classes, et pense que "N'ai-je écrire que.."?
L'écriture d'un cadre grandement aidé à ce "champ de mines", parce que:
mettre en œuvre d'autres choses, mais des choses spécifiques. Cela m'a permis de me concentrer
sur moins de choses à la fois, et même si quelque chose bifurque à
diverses autres choses, vous pouvez bobine de retour à où vous avez commencé
parce que vous travaillez sur quelque chose de précis. Vous pouvez le faire avec
tout apprentissage, mais si vous n'avez pas un objectif, ou la tâche spécifique que vous
concentrons sur, vous pouvez facilement se laisser distraire et perdu dans l'éther
de choses à apprendre.
un animal de la classe, et comment le chat et le chien des classes d'étendre animal, etc,
peut être source de confusion. Lorsque vous avez une vie réelle de la tâche dans votre propre
cadre, comme comment puis-je gérer XYZ, alors vous pouvez apprendre comment
les classes travail plus facile parce que vous avez l'essai et l'erreur, et de solides
l'exigence de vous comprendre, parce que vous avez créé le
exigence! Pas seulement de la théorie comme de la lecture qui ne veut rien dire
généralement.
cadre (mon monstre au début :P) je voulais
appuyez sur, parce que c'était intéressant, et un objectif personnel pour en savoir
et de la sorte l'étape suivante, à résoudre un problème que j'ai été coincé avec, etc.
Vous pouvez le faire comme vous le souhaitez. Il pourrait ne pas être la meilleure pratique, mais aussi longtemps que vous êtes essayer d'apprendre les meilleures pratiques, au fil du temps vous permettra d'améliorer, et probablement plus simple que de lire des tutoriels, parce que vous êtes en contrôle de ce que et comment vous faites quelque chose.
Attendre, je ne devrais pas Ré-inventer la Roue, Mais
Bien, tout d'abord, vous ne pouvez pas réinventer la roue, il est impossible, comme vous venez de faire une roue.
Quand les gens disent "Ne pas réinventer la roue", ils signifient "il y a déjà des cadres de là-bas", et pour être juste, ils sont écrits par des développeurs compétents.
Ce n'est pas à dire les cadres n'ont pas de problèmes ou de questions, mais en général ils sont assez solide, sécurisée et bien écrit.
Mais la déclaration n'a pas de sens dans la relation à l'écriture de votre propre cadre de référence!
De la rédaction de votre propre cadre de référence à des fins d'apprentissage, c'est vraiment utile.
Même si vous prévoyez d'utiliser à des fins commerciales, ou pour votre propre site web, vous n'avez pas "réinventer la roue", vous avez fait quelque chose d'autre.
Votre cadre ne sera pas comme les autres, il n'y a pas beaucoup de caractéristiques et de fonctionnalités, qui peut être un avantage majeur pour vous!
Aussi longtemps que vous comprenez sur les meilleures pratiques en matière de sécurité, etc, parce que vous pouvez penser que vous êtes l'écriture d'un grand système, qui est super rapide et sans tous les ballonnement d'autres cadres, mais en fait, vous avez des trous dans les endroits où quelqu'un pouvait ramper dans...
Mais un projet pour l'apprentissage qui vous ne l'utilisez pas sur internet est l'idéal - ou de l'utiliser, par la suite, quand vous êtes suffisamment avancé pour savoir c'est sûr!
Avec tout ce que dit, vous devez écrire votre propre cadre de référence SI:
il ya tellement de nombreux aspects à considérer, d'apprendre, d'essais et d'erreurs
conduit à la refactorisation (beaucoup au premier abord!)
un peu plus. Il y a beaucoup de bons conseils sur internet pour avancé
PHP, la plupart de l'esprit souffle à la première, comme la lecture de l'ensemble du design
les schémas. Mais elles finissent par faire sens, et à la fin de vous aider
résoudre les problèmes auxquels vous faites face, et comment faire les choses au sein de votre
cadre.
vers de meilleures pratiques, en particulier avec la sécurité. Problèmes de vitesse ne devrait pas être un problème avec un petit cadre, et d'ailleurs, si vous avez un assez décent, vous pouvez généralement refactoriser et de faire des améliorations de la vitesse. habituellement, si vous avez d'importants problèmes de vitesse, cela signifie que vous avez choisi les opérations à forte intensité, qui peut généralement être traitée par le faire d'une manière différente.
.
Sans expérience ou une connaissance avancée de PHP, vous aurez probablement passer un peu de temps à écrire un cadre, plus de lecture et de la connaissance va vous montrer que votre approche est biaisée, et donc vous pouvez tout effacer et recommencer.
Ne soyez pas découragé par cette.
J'ai fait exactement ce que, comme je l'ai appris tellement avancé de motifs et de façons de faire les choses le long du chemin dans le premier mois, j'ai fini par où refactoring n'était pas bon, et une toile vierge avec une toute nouvelle approche était la seule option.
Cependant, c'était assez agréable, comme je l'ai vu une bien meilleure structure de prendre forme, et j'ai pu voir, non seulement d'un meilleur cadre de la fondation de commencer à prendre place, mais nous avons réalisé que c'était parce que j'avais une meilleure compréhension de l'avancée de PHP.
Juste faire il! Assurez-vous d'avoir un plan de ce que vous voulez faire avant de vous même écrire un peu de code.
Sérieusement, écrire sur le papier la façon dont vous allez charger la vérification des erreurs, vous allez avoir du chargement automatique, ou inclure des fichiers si nécessaire? Allez-vous avoir un système centralisé de mécanisme de chargement, qui instancie les classes quand vous en avez besoin, ou une autre méthode?
Quoi que vous fassiez, et peu importe à quelle étape vous en êtes, si vous vous dirigez dans un nouveau territoire, le plan d'abord. Vous serez heureux quand vous avez frappé un mur de briques, pouvez retourner à vos plans, et de réaliser une légère déviation à votre plans va le résoudre.
Sinon vous venez retrouver avec un désordre et pas de plan ou de re-jette un il à résoudre le problème ou d'exigence de votre visage.
Que vous cherchez à créer exactement la même chose j'ai travaillé pendant quelques années et le résultat est Agile Toolkit.
Très facile CRUD de génération de la page
AJAX basé sur la pagination
Tous pagination et beaucoup d'autres choses sont mises en œuvre par le biais d'un support natif pour l'AJAX et l'Objet de Rechargement. Code ci-dessous montre un thème bouton aléatoire de l'étiquette. Bouton de rechargement si on clique sur nouveau numéro.
Ajax basé sur la validation du formulaire, si possible, ou très facile de validation de formulaire
Tous les validations de formulaire est basé sur AJAX. Réponse du serveur est un code JavaScript de la chaîne, qui indique navigateur pour mettre en surbrillance et afficher un message d'erreur ou pour rediriger vers une page suivante, ou d'effectuer toute autre action javascript.
Sortable tables
Tableau de tri et la pagination est très simple et intuitive de l'application quand vous pouvez vraiment sur l'objet de rechargement.
Capacité à modifier les modèles HTML à l'aide de PHP
Cela semble hors de place et une mauvaise chose à faire. Les modèles sont mieux que dans le VCS.