GhostMVC: Difference between revisions

From Adam Colton
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
=Core=
=Core=
Add subdomains to usable data
Add subdomains to usable data
Add a wildcard character to routes to limit to exact match (no trailing data). Use case: if I want to route all traffic of a certain type from [SiteRoot]/[Model] to a specific function (other than index) I cannot because it will still match [SiteRoot]/[Model]/[Method].


=Libraries=
=Libraries=

Revision as of 20:22, 27 November 2011

Core

Add subdomains to usable data

Add a wildcard character to routes to limit to exact match (no trailing data). Use case: if I want to route all traffic of a certain type from [SiteRoot]/[Model] to a specific function (other than index) I cannot because it will still match [SiteRoot]/[Model]/[Method].

Libraries

Database

  • Finish 'having' functions in database library
  • Update database library to throw useful errors
  • Database to support limits
  • Database row and row_array (only returns one and auto-adds "limit 1")
  • Find a way to make database connections persistent in such a way that the user can have several, they will open as needed, close (via hooks) and can be used for mysql_real_escape_string.
  • Database Where to accept associative array or key value pairs

Parameterized SQL

Use PDO. Seems simple enough, put ? where user data goes then bind data to position. The important (and tricky) part is keeping the data in order so that it will line up with the correct position. http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for-database-access/

Layout

Need to finish (and touch up) the html class.

I've considered using Regex for php templating (preg_replace or pret_match_all) "/{(\w+)}/". The problem with this is that we have to move linearly through the template string. This would be a lot easier (and cooler) if I could capture std_out as a string, then I would not have to guarantee linearity.

Resolve in views how to display many one-to-many relationships (or deeper). Some sort of nest array thing might work; instead of passing in a view, pass in an array of view, but then I need some way to package the data so that it's still usable. It should also map easily to the database utility.

Validation

Add phone numbers, sql-scrubbing... Look up common regex patterns and add those in. Some sort of a mass form validator would be nice, with the ability to pass back an array of errors.

Utilities

Edit

Add 'New' buttons to model, view, controller and resources in Edit utility.

Move this into a more IDE like environment with the files in an UL on the left and the editor being tabbed (possibly split-able).

Test Framework

Good base class, need to rename a lot of the methods to follow the camel casing that I choose. I also want to finish turning this into a real test interface where I can run a subset of tests.

Form Utility

Form builder utility. Select the controller, name the form (used as function name, view name and form id), add inputs and select their type. The utility automatically stubs out the view, both controller methods (name and _name) and the submit hook so that the post variables are passed as arguments.

Publish Utility

Use FTP to publish to another destination. Needs a process for 'popping' configs off a stack. Allow user to show all files, different by date, different by size and both. Use this (http://scrivna.com/blog/php-file-diff) to show the file differences.

Testing

I currently have a framework basically setup. I need to build out the interface now so that you can can see the tests, select to run specific test or all tests then see the results.

Database

Add modify table to database utility

Move the whole thing into more of a tabbed view (rather than modal). So that you can see each table, keep queries that you've run around. A query builder would be nice.

Installer

This needs to be updated and I really need to give some more thought to the user module. Also, might be nice to include some other modules (though I don't know what).