I would recommend checking out Yii Framework. It's a PHP5-only MVC framework which has been around for a while, has a strong community, and is being actively developed with daily commits and frequent releases. I found this framework very easy to learn (much easier than CakePHP IMO). It has strong documentation and even a couple of Books which are very well written. If you are considering Symfony, CakePHP, or CodeIgniter I would highly recommend checking out Yii.
Also, most all of these frameworks will give you what you are looking for. I found that most people learn and are more comfortable with various frameworks due to either which one they learned first, how a framework is organized, documentation, etc.. So it comes down to experimentation. I recommend downloading a few of your most promising-looking frameworks and run through their 15-minute blog tutorials. You'll get a good idea for the feel of each framework, and a better understanding of how it may fit your needs.
Hope this helps! Edit: Link Formatting >.<
<?php
return array( 'name' => 'App Name (Development)', // specifying development here makes it easier to recognize 'debug' => true, 'db' => array( 'host' => 'localhost', 'user' => 'username', 'password' => 'pass', ), 'mail' => array( 'host' => 'smtp.mail.com', 'authentication' => array( 'method' => 'LOGIN', 'user' => 'username', 'password' => 'pass', ), ), 'nameOfSomeThing' => 'thingy', );
And then in the index:
$config = require('config/mail.php'); $app = new Application($config);
Application then has a method that allows:
$app->config('mail.authentication.method')
(although when building a serious application I usually use the Yii framework that does this a bit differently which is fine as well)
This is my preferred method. I usually go a few steps further and do an array-merge on the config so I can commit a general config to my repository and have a local config version that is ignored that overrides settings. That way I don't always have to manually change things when deploying.
I can't imagine this ever being a performance issue. However when building my own framework as a hobby I did run into the issue that converting my easy to configure routing to the proper regular expressions took a long time relatively, so I decide to cache the end-result in memory. If your config loading takes long then this is probably the easiest and most efficient step.
Most likely syntax specific to this particular framework? A quick Google search turned up YiiFramework
I wouldn't be surprised if the junior just wasn't aware of the capabilities/nuances of the API.
Yii framework does precisely what you need with very little effort. The basic steps are:
That's all. See the Yii Guide for specific details: http://www.yiiframework.com/doc-2.0/guide-rest-quick-start.html
Good luck
I'll recommend Yii. It comes with all the features you need. You can generate your CRUDs with gii.
Tutorial that might help: Quickstart - Chapter about gii
Have you compared Symfony to Yii framework? It's made huge progress in the last year. Heavily OO, but as long as your comfortable with that, it's really smooth. Someone just made a nice new getting started screencast.
It's definitely not a black box. Framework is very open. It's developed at GitHub: https://github.com/yiisoft/yii2. Documented well: http://www.yiiframework.com/doc-2.0/guide-index.html. Community is huge and friendly. There are books, tutorials, screencasts, tons of blog posts, forums, groups in social networks.
Also Yii is part of php-fig handling PSR translations and currently working on next PHP code style standard together with the group members.
If you're looking to build CRUD interfaces quickly with a PHP framework, Yii comes up: http://stackoverflow.com/questions/3607288/php-rapid-skeleton-generator-for-basic-crud
There's also a lot of pre-built stuff that makes things easier: http://www.yiiframework.com/extensions/
I think those two things make it a logical choice.
To be fair, it's not a very large object:
http://www.yiiframework.com/doc-2.0/yii.html
Looks like more of a facade that provides convenient access to a few common methods. No different from Laravel's App::whatever()
.
You can say this exact line to every type of benchmark also if you compare db-benchmarks there is often the problem of some configuration-tweaks.. So a hello-world is the most basic benchmark which can already tell you much about a framework because every page is basically hello world + some additional stuff.. Here is the explaination (at the paragraph "Why Hello World") from Yii-Framework why they chose a hello-world example.. also note that this is a very old benchmark: here
That said - I wouldn't follow blindly some benchmarks.. but at least I will see which framework cares about performance and which frameworks are too complex
i personally like the Yii framework. I was just experimenting with applying different themes to the site and found that it is extremely easy to implement.
Let us know what you try out.
You complain that caching is disabled with doctrine. You conclude that the author is trying to fake performance degradation and "prove" that Yii2 is faster...
But it turns out that Yii2 also does not have caching enabled either, and yet it still crush doctrine.
Dev mode is disabled for doctrine in the setup function.
Dev mode is also disabled for Yii2 in the setup function.
To me it seems like he's just trying a bunch of ORM (that he might unfamiliar with) to figure out which one is faster. It's not hard to see how that could lead to an 'unfair' benchmark.
The end result is that Yii2 'wins' because Yii2 is able to perform without caching, as opposed to doctrine.
Use the interactive flag.
./yii migrate --interactive=0
Btw. actionUp
is the default action, so you can omit /up
. You can see the default and other actions by issuing the yii command
./yii
Thank you Ce Jayce, It is quite clear that I am the original creator of UO Portal and its software, its not the intellectual property of anyone and was never claimed as such, it was something made for the community to use as a tool to find the appropriate servers for them to play on - I find it comical that you can steal something and then have the audacity to claim it as your own. I wrote the code behind UO Portal, Dante didn't. Nuff' said. (thats why DANTE can't make any updates or changes or even provide support for something as simple as a polling error - BECAUSE DANTE DIDNT MAKE IT AND HAS NO IDEA WHAT HE's DOING!..)
If you wish to review the copyright license for UO Portal and related software you can see it here: http://www.yiiframework.com/license/ as YiiFramework was used in its creation it inherits said license. Thus there is no owner, its free for the community to use.
This is a cool idea that I think can be fleshed out pretty well.
Firstly, I know it's cliche, but it's easy. Use Bootstrap. http://getbootstrap.com/
Secondly, you could turn this into a fairly simple web app. How about persisting embargo data to a DB along with other data, such as developer, publisher, average score (meta scores not a good idea? Any other suggestions?), etc. Then, developers and publishers may be drilled-down into individually to view their track record on embargos. You could even add logic that looks at a publishers track record for embargos on games that didn't do well critically vs ones that did do well critically.
I don't know how much of a developer you are (you got this page up and running fairly nicely, so I'm going to assume you know a little PHP?), but take a look at some web app frameworks. My personal go-to is Yii, but you might like others.
You could do a lot here, you're definitely on to something. Good on you for the idea and this prototype.
> I'm sure someone somewhere is using eval for something important
Here's one widely used scenario: Yii Framework has this <code>evaluateExpression</code> method and uses it everywhere, for example, when you want to display objects: http://www.yiiframework.com/doc/api/1.1/CGridView . Every tutorial, official or not, demonstrates the string/eval version and forgets the callback/anonymous function version.
I don't know if you're going to find anything written specifically for this purpose, but it doesn't sound like a major project.
Since you've already got some experience with PHP, I'd recommend starting with one of the PHP MVC frameworks, like SilverStripe/Sapphire or Yii (I only have experience with the former - SilverStripe is the CMS, Sapphire is the MVC framework component). Then you could do something like create a site tree to organize by brand and model and include the file in a child page (easy to do but not a "robust" solution) or create a simple module with a couple models defining the brands, models, and manuals themselves. Examining the code for existing modules might be a good place to start.
They look awesome, but personally I'll be waiting a while before switching to 5.4. In the mean time I've been using Yii's behavior functionality a lot, which is quite similar to traits. http://www.yiiframework.com/doc/guide/1.1/en/basics.component#component-behavior
Yii is anything but cookie cutter. It's active record implementation is only one small aspect of it. It's a very powerful framework. Check out their API.
I've used CodeIgniter, Kohana, CakePHP, and Yii is by far the most powerful among them IMHO.
This is something not related to Laravel specific, you can look at Yii2: http://www.yiiframework.com/doc-2.0/guide-concept-di-container.html, or even Symfony: http://symfony.com/doc/current/components/dependency_injection.html
Or... you know.... use the property "enablePrettyUrl" as outlined here. Who wants to publish those GET params anyways?!
A lot of frameworks have tools to generate CRUD code from database:
Tail end of 2010, I read this: http://www.yiiframework.com/news/33/first-yii-book-published/ and picked up the book and read through it all and worked the examples.
It showed me the basics on how MVC and testing work on Yii specifically. I built the applications, not just read the text. I ran the tests, so I got into that a little bit. Then I wrote my own application and googled a ton, read a ton of source code, and finally figured out how everything was put together.
This helped get me to progress the most. Then, when I wanted to learn Laravel, I spent a day or two READING the entire guide from start to finish. Then I did the exact same thing when I wanted to learn Symfony.
Since namespacing came about and was popularized, reading the source has gotten very easy to follow code and figure out what is going on. Before, you had to learn the framework specific autoloaders and then trace down where things were.
Obviously, that book is outdated, but spending time to read the entire documentation or finding a good book on a specific framework will help more than anything.
Yes. There are.
Any modern framework is exactly what you are looking for. So check the tutorials for Laravel or Yii. There are other modern frameworks, but they are more for the enterprise development.
In fact, even Slim framework is good, but only if you already got a strong understanding for the modern ways. So it is not recommended for learning.
> Role Back Access Control
It's role based access control. It's a login/auth system where permissions are granted to users based on what roles/groups they belong to instead of specific individual permissions. So someone who's isn't part of the admin group cannot access pages reserved to accounts with admin roles.
How you'd implement that with or without a framework is to keep a relational data of users and their roles/groups. When users are accessing a particular page, you check that the user is a member of the particular group that has access to that page. That's a summarized/simplified explanation.
(EDIT)
> And then with one (If possible in Yii2..)
I've not used Yii2 but a quick google search led me to the following page so it looks like RBAC is built into that framework.
http://www.yiiframework.com/doc-2.0/guide-security-authorization.html#rbac
I know that you're using Yii. You're in /r/yii.
It's either
Yii::app()>db;
or
Yii::$app->db;
To connect to a database you have to configure the database application component.
Always glad to see more Yii stuff in /r/php. Scenarios are very powerful, I use a similar system for validation between roles, my base api controller will prefix the scenario with "admin". So an admin can update a field on a record that a normal user cant, all while using the same api endpoint.
Also scenarios where in Yii 1 as well http://www.yiiframework.com/wiki/266/understanding-scenarios/ and I make heavy use of them in a Yii1 app I maintain.
Edit: I know its kinda dead but you should cross post this to /r/yii
> Extend from a parent form, and bind a model to it, but don't extend a form from something called model
If it extends from Model, then it probably is a model. Maybe you should read the docs a little bit further?
In Yii you bind it like this:
$form = ActiveForm::begin(); $form->field($model, 'username');
You could as well name it EntryFormModel.
I guess the reasoning for "EntryForm" or "LoginForm" comes from the fact that you usually leave away the Model-suffix. I don't name my AR class "UserModel" either, but simply "User". So instead of using "Entry" for a form model, I'd rather name it "EntryForm" for clarity (even if it's in a models\forms namespace).
When it comes to Yii docs, I think they are pretty good, while certainly a little chaotic. I couldn't find an equivalent to Yii's "Getting Started" section in the Laravels docs, which is especially helpful for newcomers. The Yii API reference is much better because it uses custom generator. Also Yii makes heavy use of code comments. Take a look at this file, all the comments (inclusive small code example) end up in the Api reference page.
http://www.yiiframework.com/doc-2.0/guide-input-file-upload.html
1) How did you initialized your form? You need to include ['options' => ['enctype' => 'multipart/form-data']]
2) Are you sing the FileValidator on your models rules? http://www.yiiframework.com/doc-2.0/yii-validators-filevalidator.html
3) Are you getting the instance of UploadFile? $model->image = UploadedFile::getInstance($model, 'image');
4) Optional: You can use the ->widget() method to load the FileInput widget http://www.yiiframework.com/doc-2.0/yii-widgets-activefield.html#widget()-detail
Wish I could make it stupid easy for you, but it's numerous steps.
Here are a couple of relevant articles which, if you study should get you there. I've done it a few times, but each time I have to study what I did the previous time to fully get it.
http://www.yiiframework.com/forum/index.php/topic/29797-using-two-database/
http://www.yiiframework.com/wiki/123/multiple-database-support-in-yii/
Yii lets you put stuff wherever you want and add locations through your config file with their corresponding version of namespaces.
http://www.yiiframework.com/doc/guide/1.1/en/basics.namespace
The scaffolding and code generation that comes out of the box creates these folders and paths to them by default as a suggested way to organize, but their assumption is (I think) that any program that uses the scaffolding without modifying it won't be that big.
We have a huge set of projects in Yii that share some componentry, and many of those live outside of all yii base directories and are pointed to through namespace aliases. Even shared parts of config files are located outside of particular projects.
In any event, my point is not that Yii is the best (no flame wars! it's just what we use). I just mean to say that the one issue you bring up is not really mandated by the framework and is very easy to change, it's just how the default scaffolding happens to lay things out.
Yii is simply a framework for building PHP sites/applications. The tutorials simply show you how to get started and some basics on what the framework does for you. Most people suggest doing the Blog tutorial. If I remember correctly, I ran into a little trouble following along with the blog tutorial and just dropped it and started working on my own project. Now that I know a little more I plan on reviewing it to see what I missed.
Did you have a project in mind for Yii?
I'm doing my Masters in SE. We had to create a tutorial on the YII Framework. How to set it up and how to create a test application. Let me tell you, I didn't have any MVC or PHP experience. The hardest part was getting apache and php to talk with each other lol, port 80 wasn't working for me. Even IIS was not installed. Anyways, setting up a shell application was easy and very fast, Yii creates all the folders and view. You get a working web app out of the box. The documentation is well written and there are tutorials on the yii website.
We are in the same boat. My final project for the class will be to rewrite a flash/actionscript/coldfusion web app for work in HTML5/CSS3/jQuery/PHP Zend. I will start it soon. I am still working on my project proposal. I hope Zend is as easy as Yii. Good luck, looks like you have a lot of advice. Your post has hellped me too! Thanks!
Update: OMG looking at all the tutorials on Codeignitor, I think I might use this instead of Zend.
Obligatory Yii mention. I am love Yii framework!
The learning curve is steep, but it is extremely nice once you learn it. It combines stuff I've liked from other MVC frameworks, stuff from rails, stuff from component based stuff (feels similar to ASP.NET/Prado cause the guy who started it also started Prado), and feeds of the strengths of each.
Yii is definitely worth at least checking out.
Your final setup is really going to rely heavily on what your friend sees the scope of their site being. If it really is small and will only ever have a handful of users and projects then it might be worth custom building a light CMS.
Alternatively, if your friend foresees managing a moderate to large number of projects and users (especially over time) than using a framework would save you from having to spend time implementing the good & validated CRUD operations (which, if you do it from scratch, you'll spend a lot of time doing).
Most frameworks are probably overkill for small scale projects (but so is Wordpress in my opinion) but they will help you get the base operations out of the way so you can move on to the actual design/user visible portions (the fun stuff) rather quickly.
Personally I'd recommend Yii as its syntax and setup is much simpler than other frameworks I've worked with (Symfony and CakePHP). It also will work with jQuery right out of the box. From a "learned something" standpoint, understanding and being able to work with MVC is a great skill to have.
As one of Reddit's outspoken Yii advocates, I highly recommend
https://www.packtpub.com/agile-web-application-development-yii11-and-php5/book
You should use a framework to handle a lot of the plumbing (validation, access levels, routing, blah). I prefer and recommend Yii, although many frameworks are great.
This book goes through developing a super basic issue tracking system with Yii. Once you get to this level, you can add the functionality from the rights extension:
http://www.yiiframework.com/extension/rights/
To handle multiple security levels, and then you can build views and use CGridView to handle report building.
Along the way you will learn much and probably become a Yii advocate. It takes about 2 weeks to learn the framework (steep learning curve), and then everything is super amazing happy time.
Ps - This will take at least 4-6 weeks.
Yes, function hashData returns $hash.$data.. seems pretty literal to me. From the API >To protected data with HMAC, call hashData(); and to check if the data is tampered, call validateData(), which will return the real data if it is not tampered. The algorithm used to generated HMAC is specified by validation.
Not related, but the same author has created a Go starter kit for REST APIs which has sensible collection of libraries packaged together. We've been using it in our company for 2 years with great success. Also to note that he's a primary dev for a well known PHP framework
​
​
behaviors are an even simplier way to modify internal behavior of a model without overriding existing methods.
For example lets say you have a Ticket
model which when you create it, or update it its supposed to send an email to the person responsible and the person who wrote the ticket. Instead of editng the Ticket::afterSave()
method you can write a behavior and use it like this.
public function behaviors() { return array_merge(parent::behaviors(), [ [ 'class' => EmailBehavior::class, 'receiverRelation' => 'creator', 'layout' => 'ticket/creator', ], [ 'class' => EmailBehavior::class, 'receiverRelation' => 'responsible', 'layout' => 'ticket/responsible', ], ]); }
That way if later you need to use the same functionality for another model, lets say 'Purchase' model will send an email to the seller or the buyer you don't have to write any line of actual code.
Yii2! http://www.yiiframework.com/doc-2.0/guide-index.html
Best ORM by far, best performance by far: https://github.com/kenjis/php-orm-benchmark
They proved the ability of the framework to handle huge traffic (some of the biggest world websites use it, like vice.com)
For beginners, Laravel is quite nice too ( lot of video tutorials, so you can learn it even if you're not a good code reader). Laravel is the new CakePHP.
If it were me I would use:
If you want go more php heavy then you can look into using a MVC framework like Yii or CakePHP, both of these will work with MySQL or you can look into Node.js which is server-side javascript. That takes care of your backend. For the front end you can use angular/react/knockoutjs or any other javascript library. These are mainly used to enhance the user experience, for example typing in a form field will automatically update a part of the webpage or dynamically adding a row to a series of entries. For a simple form these might be overkill but if you want to learn then that's an option. Good luck and have fun :)
> But since PHP doesn't have multiple inheritance, you can't use it in different package.
Maybe I don't understand your point but I don't see how is this an issue since you can simply import one library to another.
Laravel helpers can be namespaced or included into classes as static methods like yii does. http://www.yiiframework.com/doc-2.0/yii-helpers-stringhelper.html Or as you said extend the Array object and use that one instead.
Yii + Gii code generator is perfect for your need.
It will read your table, and automatically generate the code to display it in sortable tables, and include edit each row (it build a CRUD).
It takes 5 minutes to build a complete CRUD for a single table:
I learned Yii by following their guide: http://www.yiiframework.com/doc-2.0/guide-index.html
Then I would try to extrapolate the guide examples to my work in question. After a while I'd go and check the source code in order to do more advanced stuff. 3 months later I felt 100% comfortable doing anything in Yii. Yii may seem to have a steep learning curve, but you easily start doing a lot of stuff really easily.
The usual way to do it with framework is asset management, creating new tmp subdirectories with random strings each time you change css/js to force the browser to reload.
Have a look to the yii one :
http://www.yiiframework.com/doc-2.0/guide-structure-assets.html
http://www.yiiframework.com/doc-2.0/guide-structure-controllers.html#creating-actions
it's a method in a controller (class that extends/inherits from Controller) that follows a code convention (here: starts with word 'action'). It basically executes code based on URL you've typed in the browser.
In the example entering url "website.com/index" will execute actionIndex() function (actionIndex action) and render index page (or just "index" word.. not sure what $this->render does exactly, but in frameworks that I am familiar with it returns some html view/template)
edit: looks like I was right, in link you've posted ther's View code stored in views/site/say.php
I was just starting to work on this and I stumbled upon the "Upgrading from Version 1.1" section of the Yii2 guide (http://www.yiiframework.com/doc-2.0/guide-intro-upgrade-from-v1.html). This section was not at all complete the last time I looked, it looks to be complete now.
I just had another read through, I think it is an excellent resource in quickly identifying the major differences and making comparison examples between Yii 1.1 and Yii2, for example: "Yii 2.0 breaks the CComponent class in 1.1 into two classes: yii\base\Object and yii\base\Component. ... etc etc"
I really think this will get you going, it covers what I think is the challenging part, as I stated in a previous comment: "In my opinion the challenge in "migrating" is rewriting and refactoring code to adjust to the the style change and making use of new features." -- this covers exactly what I am talking about.
You could install Yii2, run gii on your models and you would be well on your way, but your questions will be from a Yii 1.1 perspective, which I think this resource covers.
Let me know how it goes.
> NO, I don't want to connect to any database (memory or otherwise) in my unit tests.
Oh man, the feels! I tried to test and mock something too, but, got nowhere. http://www.yiiframework.com/forum/index.php/topic/64710-activerecord-mocking-with-mockery/ What's you secret "middleman hack" you're talking about? I NEED IT!!!
http://cdn.smosh.com/sites/default/files/ftpuploads/bloguploads/I-know-that-feel-bro-blank.jpg
coded Laravel for a year (4.2, then 5) and now I'm working with a Yii2 project for almost a month, and I really hate it.
Routing sucks.
Query builder sucks.
Migrations suck.
Documentation sucks.
Environment detection sucks.
Everywhere those god damn arrays, it's like they had a fetish for them, or something (all migrations are ugly arrays with string concatenations, instead of simple method chaining). Configuration is many-level arrays.
No dependency injection via controller methods, event controller constructor is cluttered with unnecessary parameters, which you always have to write.
I already added to the project some things from laravel, like elixir, migration schema builder (Capsule), php dotenv environment detection, dd() function and other useful helpers.
Don't try yii, if you have tried laravel. You will feel like you've been thrown 5 years back.
Yeah, I wanted to write some tests too, but hell, it's impossible to mock something. "The community can help!" you say? Yeah, right, I bet no one has ever mocked something in that community... (http://www.yiiframework.com/forum/index.php/topic/64710-activerecord-mocking-with-mockery/)
No you don't. You need to add rule to urlManager. http://www.yiiframework.com/doc-2.0/guide-runtime-routing.html#using-pretty-urls
Esencialy you add somethinkg like that to already defined rules in UrlManager in config file:
> 'custom-url' => 'controler/method'
I can most assuredly tell you, from the perspective of someone new to Yii, that the Yii docs for routes and controllers are absurdly confusing.
"How do I define a route, and then map it to a handler?" is not clearly answered or obvious in the docs, and not obvious from the way Yii is built.
I mean, I ahve to make a fucking controller map to do something as simple as hook up handlers to routes??
> Then it shouldn't be called "FormModel" for clarity.
You mean it should be called FormModel for clarity? The Model class is not just used for form data input. For example, ActiveRecord class extends from it.
> The term "model" is the single most overloaded (and ambiguous) term in programming, and using it by itself provides no context.
Well here is some context: http://www.yiiframework.com/doc-2.0/yii-base-model.html
Do you have a better name which reflects the use case of the Model class in Yii?
> Then the docs should be changed to reflect that for semantic clarity
Anyone who cares to actually read the docs knows what's going on. Before code sample it says:
It's already clear from these lines what the EntryForm class in the code sample is being used for.
the buttons are functions and can be edited check http://www.yiiframework.com/doc-2.0/yii-grid-actioncolumn.html#$buttons-detail
you can do something like
'update' => function ($url, $model, $key) { return empty($model->store) ? '' : Html::a('Update', $url) ; };
Err.. first of all, Yii has been out since 2008. Secondly, Yii1 and Yii2 are two completely different Frameworks. Yii2 is a complete rewrite that carries on the spirit of the original Yii (source).
Laravel 5 on the other hand is just a new version and even largely backwards compatible. You can get even large L4 apps running as L5 apps in 1-3 hours. Same for Zend1/Zend2 and TYPO3/Flow, two completely seperate frameworks.
We want to use the ACL that comes with YII http://www.yiiframework.com/extension/acl/ , but I have realized that this only works with the MODEL and some CRUD actions like CREATE, READ, UPDATE, but what we need is to use the ACL with the controller and actions , by example
Class PostController {
actionIndex(){
}
actionDelete(){
}
}
I want to be able to grant the action Index and Delete.
if you want to use minifield version of your each css or js, you can follow this tips: http://www.yiiframework.com/wiki/785/use-minified-version-of-jqueryasset-bootstrapasset-and-all-default-assets/
more example from cebe: http://www.yiiframework.com/forum/index.php/topic/50825-manage-assets-in-yii2-theme/page__view__findpost__p__236161
I have recently used Yii2 to implement a REST API. I couldn't be happier. Yii provides a whole set of tools to simplify the task of implementing RESTful Web Service APIs. In particular, Yii supports the following features about RESTful APIs:
http://www.yiiframework.com/doc-2.0/guide-rest-quick-start.html
as you can see in your code you already got something that can help you understand how to obtain that:
Yii::$app->user->isGuest
once your user is authenticated you can access it via the Yii::$app->user->identity
property and all its related properties you've setup.
Have a look at the Authentication page to understand a bit better.
Also, FYI, you'll get more luck by posting your question on StackExchange or on Yii2 Forums. There's also a IRC channel which is active (depending on the time of the day usually).
Use the migration from Yii2 advanced template to create the user table: https://github.com/yiisoft/yii2/blob/master/apps/advanced/console/migrations/m130524_201442_init.php
Create the User model which implements IdentityInterface. Look here for example:
http://www.yiiframework.com/doc-2.0/yii-web-identityinterface.html
That's all you need to get started. You can then create forms to register, login, etc.
If PHP is your bag, why not go for a PHP framework. There is quite a few, the one that I have tried (just recently) is Yii Yii has themes /templates to get you started and if you use Netbeans 8 (in my opinion the best free PHP IDE) its got a great easy to use Yii plugin.
Thanks for the feedback,
> 5 minutes is still pretty long for an install...
Agreed. Automated installs can be done in ~30s. The web installation is equally as fast. Would you recommend changing the statement to match the TravisCI build times?
> Sounds like you are appealing to devs more than actual users
There's a focus on making it developer friendly.
> 5.3 is EOL, I would make a move and utilise newer PHP features
5.3.10 is the bare minimum it will run on. It runs perfectly well on 5.5/5.6. 5.3 support -is- was more of a legacy thing. CiiMS does take advantage of a few 5.5 features, some of which were implemented in PHP via compatibility libraries (eg ircmaxell/password-compat for password_hash). The docs just hadn't been updated to reflect the minimum requirements yet.
> Also the name? Why CiiMS, if you wanting a blog platform why name it essentially CMS?
It's a play on words. CiiMS is built in Yii Framework. ~ 2 years ago it was more of a CMS than a blogging platform, and the name as stuck as it's moved to more of a blogging platform.
> protected as a directory name
> WHY!? It was the last dir to actually look in for the main files, why not App/ or CiiMS/?
It follows the Yii1 convention for the directory structure.
> Your formatting and indentation is pretty crazy in some places.
:/ I bounce around between a couple different computers, and a couple different editors - apparently they don't save the files with the 4 space tab setup I have. I'll need to go back in and fix that.
> I know it seems like a lot of complaints, but if you release something into the wild expect it, standards are way to high for open source software.
Not at all. The point of this post was to ask for feedback. =)
The test keep being published, and depending on the test, shows how the difference is between CI and Laravel/Symfony based frameworks
http://docs.phalconphp.com/en/latest/reference/benchmark/hello-world.html
http://www.yiiframework.com/performance/
I hope for those that enjoy Laravel, there isn't too much lost in the move to 5 as they restructure their directories once again.
Also hope eloquent ORM becomes more efficient and helps process speeds.
It also looks like 5 will offer some speed improvements as well.
So for you, the fans of Laravel, may it continue to get better.
Have a good day Peter, just stop bashing those who use other frameworks. Your comments do not make anyone want to join the community of Laravel when the attitude is that of Apple users. (btw you are not the first to come off this way about it)
+1 for laravel. it's just so beautiful. before i looked into laravel, i was using yii, which is cool, too, but i will use laravel for now. when yii2 comes out in a stable version, i'll have a look at it.
I'm really fond of Yii (yiiframework.com). It's PHP based, but modeled after the successes of Rails. Lots of great stuff built in, good performance, and still retains a lot of flexibility and extendability without forcing your hand (err.. keyboard) that much. Honestly, it would be hard to go wrong with any of the suggestions on here so far (all great) so it's down to preference. Here are some quick intros to Yii for you compare if interested: http://www.larryullman.com/2009/06/18/introduction-to-the-yii-framework/ and a screencast intro: http://www.yiiframework.com/screencasts/. Good luck - sounds like a fun project =)
He's talking about HMVC architecture, which CodeIgniter was never built for.
It's one of the few frameworks in popular use today which specifically isn't HMVC.
Yii is but one example of a framework which does answer what OP is looking for, through modules.
I'm a web developer among other things. I see the site is written in php and I suppose you are using MySql on the back end? I really like the way this site is heading, just needs a little jump start.
What I would suggest is converting the site into a Yii application. Yii is a php framework and with it you can create a database driven website with a minimum of effort. Extensions give you a jump start on features and it will create CRUD forms from a database schema automatically.
It's a fairly steep learning curve if you haven't worked with a framework before but trust me it's worth it. The hardest part for me was figuring out what code went where. The documentation is fairly good but they tend to not explain where exactly to put something. For example they'll tell you how to specify something but then not tell you which file it should go in. It took me a couple weeks before I could figure out how to increase the default number of rows in a data table for instance.
Would you mind sending me a copy of the database? You could strip the data and just send the schema if you don't want to give that away. I'll generate a Yii app and show you how much can be accomplished with just the automated tools.
Another potential candidate for a framework to play in is Yii Framework, which is very fast, well documented, and has some great features to speed along development and simplify code.
I haven't used it actually. I'm currently probably most familiar with Yii's ORM (check out CModel and CActiveRecord), since that's the framework I've been using on my last two projects.