Existing PHP Tool for Feature Toggle - php

Recently I've read a number of articles talking about the idea of using "feature toggles" or "gatekeepers" to keep features hidden from users until the development is done. Facebook and Flickr both also talk about how they use this to test new features with a subset of users before unleashing them on everyone.
A bit of googling didn't turn up any existing PHP packages/tools that can be added to a web app to handle this type of thing. It seems straight forward enough to roll our own but no reason to re-invent that wheel if we don't need to. Are there any existing PHP tools to do this?
Articles
Feature Toggle by Martin Fowler
Flipping Out on Flickr DevBlog
Clarification: The part of this that I'm looking to see if it exists is the admin panel that controls which users can see the new features. In Flickr's example, they can turn it on based on the host. In the Facebook example, they add functionality such as limiting a feature to 5% of users, only TechCrunch users or only East coast users.
The admin panel seems crucial when you have 200 turned on features, 10 features that aren't quite done yet and 3 more that you're demoing for some users.

if (user_can_see_app()) {
show_app();
} else {
dont_show_app();
}
I fail to see why a package would be required for something so simple.

I've wrote a micro service for feature toggle pattern, called Bipolar:
https://marinho.github.io/bipolar-server
It is written in Python but that doesn't matter because it is an external API and Admin interface, so, all you need is to write a PHP client for it. We have used it in production for a while but only worked on public release and documentation recently. For JavaScript support it can push notifications using Webhooks as a basic URL call or via Pusher event.
I am bit missed after many years with no contact with PHP, but I can help you to write the client if you are interested.
I hope that can be helpful.

The easiest solution i found is to have the feature toggle state stored in some remote location that can change easily (turn it on/off)
I found it easy to have on GitHub a repo holding some JSON data with the feature toggle's state, later on you can change that state on GitHub (from phone/pc etc...)
your php code needs to fetch the JSON and make a decision from it ...
you can look at the blog post about how to achieve this:
http://www.nimrodstech.com/dead-simple-feature-toggle/
it shows a code snippet of how to achieve this in a simple way.

Related

Website with login

I want to create do the following things:
1. Create a new E-Commerce website
2. Update a already made website(superbrainacademy.com)
So the second thing, I have to include a log in provision so that some people which I authorize can get to see certain extra pages than others.
In e-commerce website I want everything like they can sign up themselves, I do not want to add each person manually, they log in with their email id and password and do shopping like something like flipkart.com. Well, payment gateway is out of scope for this question. What I need to know is how to start? In what language to make all this? Any guide on this?
What I know and i have created: I know programming in html and a little bit css. I make websites from downloading some good templates or just putting nice images at back and all. See my websites to have an idea(superbrainacademy.com or octindia.com)
I thought that maybe I could achieve this through joomla/drupal/wordpress. So I downloaded xampp and installed wordpress, drupal and joomla on it. The websites that open up look basic blogs to me (sorry but i am new to it) So I have no idea whether or not what I want can be accomplished by use of any of them. I also downloaded many many wordpress templates but they looked disgusting.
So what I need: A way to create a website with login id and password (signing in and signing up) but one has to be authorized by me as the users < 20 or so and the other needs to be done automatic as users > 100 or idk maybe greater. So how should i start.
Note: I do not prefer using automatic website making like weebly and all...
I would recommend using a CMS. If your willing to put some time into it you can learn to build your own template. I haven't used wordpress but I have built templates for Joomla, it takes some time to learn probably just as much time it would take to do what you want to do from scratch. Check out their guide to building a basic Joomla template.
http://docs.joomla.org/Creating_a_basic_Joomla!_template
So it seems that, you just need an e-commerce cms, and its likes of .
My suggestion for you is to deploy a Magento installation with a prebuilt template and demo just so you know where to start, and it gets easier for you to do stuff yourself, once you get a hang of it.
There are various of Magento/osCommerce template service providers out there some of them free maybe, some of them premium. Though I strongly bias my recommendation towards Magento than osCommerce, after myself having worked on both.
Note:- I am taking about opensource here, and mostly all of these cms installations tend to be quite similar.
Update:-
About integrating a login system inside your current website, you can use a script from HERE as per your requirement and complexity.
Joomla has inbuilt ACL:
http://docs.joomla.org/J3.2:Access_Control_List_Tutorial
so that would enable you to set specific access for specific user groups eg branches
It would allow you to either:
a) let people register individually
b) you approve each registration
c) you set up each user individually
You could also combine Joomla with an eCommerce component.
I find mixing Joomla with Mijoshop (OpenCart for Joomla) a good solution.
You can install Joomla with VirtualMart. If you don't need all functionalities of joomla just disable those from back-end. If you need a pure e-commerce site you can use OpenCart (lightweight solution) or Magento which is a much more complex e-commerce solution.
Update:
The second thing couldn't be accomplished by using HTML only. wardha-Web's answer below (php login) seems to be a good choice since it's quite simple. Another sophisticated way would be to modify your existing site and put it behind to a php framework where you can define access role based authentication, but for this you need to have some php and object oriented programming skills

How do I create a web service that will display in a browser and on an android?

My web development experience has mostly been setting up a CMS like Wordpress or Drupal and creating custom themes. Actually work in server-size coding has been very minimal. I've played around with php a little, trying to mod off of phpBB and beginning to learn some MVC work with CodeIgniter. Overall, this seems like a pretty big step forward, but it's something I need (I think) to do for a project I am working on.
Essentially what I want to do is have a service like Twitter of Facebook (not in the social networking sense); a user is able to log into the site and perform various operations, while also being able to use an android application that supports limited operations.
After some Googling and reading articles on the internet, it appears REST is the way to go. But I can't quite seem to grasp some of the technical details. I understand how the HTTP Request/Response works, but I don't know how I can code everything server side so that visiting example.com/item/1 will bring up the details of item 1 in the browser and can also perform a GET Request in my Android app so it can grab the details from the database and display in on the site.
Any suggested readings or some tips on how to execute this?
You can implement this using MVC. By default, have the controller ask the model for the details of the item, then pass the info to the view. Repeat this process for each type of request you want to accept such as POST, PUT etc., where you define a new function in the controller, ask the model to perform the corresponding database action, and return the response to the view.
There is helpful tutorial for getting a REST server up and running using CodeIgniter here

How do I get started implementing the grooveshark api

I have a client who wants me to implement the Grooveshark API into his site to be used as a fully fledged music system. It will be able to play, pause and skip songs from playlists that the user creates and and tracks the user favourites. So the user will have the ability to search for a track, add to playlist, favourite, play and the reverse of all these actions.
My question is. How do I get started. So I have the API (well the public version http://www.apishark.com as I am waiting for the full version to be sent to me). I look at the API and I just see what appears to me to be short snippets of code.
Is there some kind of a default way to implement an API, what do I need to know, how do I go about this task?
Any help will be appreciated.
Here you can find a php class to ease your work. It's not free but it's extremely cheap, and if you are not able to sort our how to use a standard REST api, and you have to do this for a work, maybe it's worth the price.
Or you can try here for a free class, but I never tried it and you have to use git to download the last version. I believe it's still under development, though.
Or, here you find a free python script that maybe it's easy to convert in PHP. Same here for a perl module.

Browser screencasting

Hey, I'm trying to make a web app that allows users to write on a virtual drawing pad and record their drawings as the progress as a video. I know there's screen casting software out there, in fact, I have such software on my computer but I'm trying to create this ability online. Would anyone be able to suggest where I should start looking so that I could figure out how to do this?
I have pretty good programming skills with in flash and I'm good with php.
Thanks,
Mike
You might look into internet whiteboard software, like this one. A company called GroupBoard offers this as a service, including free offerings. Their stuff isn't great, but they're one of the only companies who offer it without requiring use of a browser plugin.
The link I provided contains tutorials for creating a whiteboard using AJAX alone.
You might want to try this product which allows you to record a collaborative whiteboard session, and optionally have it automatically uploaded to Vimeo. It can be embedded on your website.

Quickest way to implement a searchable, browsable image gallery - flickr integration?

I have a friend who is need of a web page. He does interior construction, and would like to have a gallery of his work. I'll probably go for a php host, and was thinking about the best way to implement the image gallery for him. I came up with:
Use flickr to host the images. They can be tagged, added to sets, and I can use both the tag and set information to display "categories" for the gallery, as well as browsing. Flickr also has multi-upload tools so that a 20 photo job won't be a PITA to upload.
How to best get at the api? Is there a good PHP library for flickr integration? Should I roll my own?
API key - is this considered a commercial project? The web page is for his business, and he will be paying me to create the site...
Is flickr the wrong tool for the job? It seems like a pretty good solution in my head, but is there something I'm missing? I haven't used their APIs at all.
Thanks for any input!
It sounds like a difficult way to do things - have you considered Gallery (No points on creativity for the name!).
Unless you're really wanting to save on bandwidth, I think you'd get much better results from installing some pre-built gallery.
The perfect solution for this kind of thing is Picasa (from Google ofcourse)
You get:
1gb of free storage space on a Google Picasaweb account that already has a web interface with embeddable slideshows and stuff
A compete image browse and upoad program for the client side (namely Picasa) that's directly connected to the web albums. It's so user friendly that even your grandma can put her pictures online with that.
RSS feeds and an API from google.
there's a custom light-weight PHP api available
Need anyting else?
Note from Chris to others that may be looking for an answer: The API can be found here.
I recently implemented a Flickr-based photo gallery for a client. Flickr was perfect for them for a lot of reasons. Gallery is an impressive open-source project, but its feature set (and complexity of administration) was overkill for what this client needed.
Check out the Flickr API, especially the section on building URLs, which will be necessary when building your web pages. Don't bother coding a PHP wrapper for the API's. phpFlickr has already done it, and it's a smart implementation.
Here's a helper function I wrote that made life a lot easier for the various pages that need to access Flicker:
function newFlickr()
{
static $flickr = NULL;
if($flickr != NULL)
{
return $flickr;
}
$flickr = new phpFlickr(api-key, secret);
$flickr->setToken(token);
$flickr->enableCache("db", "mysql://acct:pass#localhost/flickrcache");
return $flickr;
}
The trick here is that all the crud you need to enter is stored in a central place in your code. Caching is key, so use it. And, if you need a phpFlickr object in multiple places for each request, you're only ctor'ing it once, which saves on init time.
Having Read SchizoDuckie's post, I had a look at the picasa api for php, and found it a bit daunting to start with, however I found this sample code absolutely brilliant for getting started with some basic integration.
Samples for other languages also seem to be available - can't vouch for their usefullness, but suspect they will be good too.
These might be of help. They are mootools scripts and run without any server-side coding necessary. Both integrate with Flickr.
http://imago.codeboje.de/
http://www.moopix.org/
If you have any interest in Ruby on Rails, there is a screencast here that shows how to create a site similar to what you are describing in RoR.

Categories