Software for quickest establishment of an online presence - php

So, every so often you get sites like http://www.twitmaps.com - sites created quickly and pushed online for a random purpose.
Often either you have plenty of spare time, or you just don't have the opportunity to get your own ideas online. For example in this one, the snow images are very vague and could do with more accuracy.
What tools / languages do people use to make a site as quickly and efficiently as possible? Not one with a shop or anything like that - just 1-5 simple php pages, some API linkins to other sites, and a mysql backend. Wordpress is great for blogs, but what about general purpose websites?
I've written sites in ASP, php and am happy playing around with databases and the like - I just want a way to quickly shove something online :)

You have a few choices.
Established blog/CMS software like Wordpress/Joomla/Drupal. You can do almost everything with plugins.
If you need something more flexible use one of frameworks like ROR, Django, CodeIgniter, Zend etc
Use code generator tool like PHPRunner.
Really depends on what you familiar with.

You will find frameworks like drupal and Joomla of great service for this.

http://cakephp.org/
Best web framework I have ever used

CakePHP is good for a PHP-based framework. Since you have PHP experience, this is probably a good place to start. It's designed for rapid website development using a database for storing information.
If you're willing to experiment with new things, give Ruby on Rails a go. CakePHP was initially modelled after Rails, and it's even easier to use when creating simple websites.
For smaller sites that don't really require a database, I would wholeheartedly recommend Sinatra. It is Ruby-based, just like Rails. With Passenger (also known as mod_rails), deploying Rails or Sinatra websites become as easy as uploading files with FTP.

Since you are asking for the quickest way, I'll have to say absolutely, definitely Wordpress or Dokuwiki. They both come with a very quick installer. Wordpress is richer in Plugins, has more good looking templates and requires even less time to get familiar with than Dokuwiki. Dokuwiki doesn't need a database, Wordpress does.
Whenever I need to set up something really quick, without touching a line of code, I go for one of these.

Related

How can I mix in some functionality written in Ruby into a WordPress site?

Here's the thing. I love Ruby and I've been using it for the past couple of years. I love everything about the language and the community.
But I have this soon-to-be-large WordPress site, where I have to implement a lot of additional functinality. The problem is, I really hate customizing WordPress beyond simple theme design.
Examples of things I need to do:
add some additional information to profiles, like karma/points/reputation system
offer users to create their own page after they're allowed to do it
pulling data from some external API and displaying it on the user's profile
I got really used to the whole agile BDD workflow, where I go from Cucumber features to RSpec to implementing the stuff, and the whole WordPress architecture looks to me like ok I'm just gonna have to pray this works.
I'm not sure if it's even wise to try to write some part of the app in Ruby and try to make it work together with WordPress, or if I should just take WordPress as the only thing I've got and make the most of it's strenghts and weaknesses.
The main issue for me is that everything I'm going to write in PHP will take about 5 times as long than if I do it in Ruby, and it will probably also be more secure and robust, since I don't have as much experience with complex PHP stuff. I mean I've done a lot of PHP in the past, but I always felt like the whole thing is going to fall apart at one point.
I know there is probably no definite answer on how to approach this, but any suggestions are welcome.
We've integrated a Rails app into a TYPO3 installation. It worked out pretty well. The key point is to use Rails' support for adapting models to tables of a legacy app. An important point is to handle authentication which we handle by passing the TYPO3 session key to the Rails app in a hidden way (using PHP as the web-client and passing appropriate headers) and looking it up in the session table (respecting the session timeouts). The Rails app itself is mapped into a sub directory using passenger. Performance is very good, it's even amazing compared to our previous implementation trying to use Extbase.
So, in conclusion: If you do it right and the interfaces between the two apps are well planned such an approach can offer great benefits and the best of two worlds. If not done right or you don't understand some implications of Wordpress (like security) you will create a big mess prone to security breaches.
BTW: We reached feature parity with the Extbase (MVC framework in TYPO3) solution after 4 days of using Rails. The Extbase solution took 6 weeeks and caused a lot of headache and trouble. So your time factor may be even better than 5:1.
Why not learn how to to Behavior Driven Development in PHP for WordPress? In fact, this is one of the great opportunities for developers in 2017. We now how full blown BDD frameworks in WP-Codeception, so that you can even automate Gherkin feature files, just like in Cucumber. Check out WordPress-BDD.com for some usefull info.

Looking for a couple of good Blogging applications in Rails or PHP

I would like to have a good blogging application developed in Ruby On Rails, or alternative in PHP (I prefer Rails actually, but PHP could work as well).
I know a couple, as Simplelog, but it threw a couple of errors the first time I tried to run it, and once I fixed them, I didn't like it pretty much.
WordPress is by far the most popular PHP blogging software, and maybe the most popular period. You can have it up an running in under 5 minutes. It is consider one of the best blogging software out there.
Moveable Type would be the other most popular one, but that is written in Perl with some support for PHP.
You might want to look at Jekyll. (It's what powers GitHub Pages.) If you're looking for something with a full-on CMS style interface, this isn't it. It's just a static site generator and it's very simple. But, because of that, your blog will be much faster to load (since there's no processing being done, they're just static html files being served) and less likely to be hacked like wordpress, etc.
It also pairs well with disqus if you need a commenting system.
Just a thought if you're looking for something a little different.
In Rails Mephisto is widely used blogging engine that has ready-to-use plug-ins and advance feature like built-in caching system for faster loading.
http://www.mephistoblog.com/
If you are looking for some light weight small team oriented, you can easily turn Radiant CMS into blog this also have nice and user friendly futures.
http://radiantcms.org/
And my fav is Typo
It comes with theming & plugins support for easier customization( i like SEO futures )
http://blog.typosphere.org/
I tried and tested all above apps they easy to insatll, configure and short learning curve
I recently had to choose a blog application. I however was choosing between PHP and Asp.Net. In the end I (reluctantly) went with the ever popular Wordpress. Due to its popularity, you can't beat it for the sheer number of plugins and themes available for it.
Apologies that I know nothing about Ruby blogs, but I'm sure there are none with the same number of themes and plugins as WordPress.

The cost/benefit of learning multiple content management systems

I'm a PHP developer who uses drupal whenever the job looks like it could benefit from a CMS. I was having a discussion with a colleague who said that it helps him a lot with clients that he knows multiple content management systems. To me, this sounds like dividing one's efforts, and I'm not sure if it's worth it to invest the time learning another content management system.
Is it often that jobs lend themselves better to one content management system over another? or can most content management systems handle most jobs?
I'd say that a thorough knowledge of one CMS is more important, you're just so much efficient if you really know what you're doing. Drupal is also very flexible, you can do just about everything with it, even though it sometimes is quite complicated.
I don't think you gain much by learning a similar CMS, but it could prove usefule to know a CMS that is very different from Drupal. For example a very simple CMS that you can use if you just don't need all the complexity Drupal brings in.
I'd say a bit of superficial knowledge of a wider range of CMSes won't hurt you. You don't have to become an expert right away, but knowing their particular strengths and weaknesses and the mindset they come with might prove handy. When you decide you need one of them, there's usually still enough time to dive into the documentation and make it work.
If you're a PHP developer, you might find your development skills can stagnate if you only code in Drupal all the time. You're not exposing yourself to different methods of software development. For example: Developing in Drupal 6 doesn't give you much experience in Object Orientated Programing. It's largely procedural (with the exception of Views).
While Drupal is a quality product, there's definitely a misconception that it is flexible enough for everything. I've been developing high profile sites in Drupal for some years and I've seen quite a few projects developed in Drupal that should have been done in another framework or language. Some of them have. I would diversify. You'll be able to make better decisions.
I'm currently branching into Ruby on Rails and I'm finding it's giving me some valuable perspective. It's also an excellent framework for those projects where a CMS may not be appropriate. Also: Some of the best practices in RoR I am incorporating back into Drupal.
I use only the two most popular open source, Drupal & Joomla. Knowing more than the two most popular programs when it comes to web design is overkill IMHO. As already mentioned I'd focus on one a little more just to be more adapt at it.
Plus you may get a client who just wants you do develop a ready made template they like but who doesn't have the experience to use the CMS.
Lastly I personally don't consider Wordpress to be a full CMS but it's also a good idea to learn WP mostly because it's so popular but also because it's great for quick 3-6 page basic sites.
It depends on the kind of work you're doing. If you're always building sites from scratch, and have full say in which CMS you use, it makes sense to stick with what you know and learn it inside-out. If, on the other hand, you're ever brought into a project to modify an existing site, or you might be hired by a client that already uses an existing CMS for something else, it will help if you know more than just Drupal.

Django or Drupal, which one should I use that suits best my needs?

I want to learn and use Drupal or Django for the following:
dynamic web sites, medium database, multi-level users, paypal integration, content managment, speed (developing), security
I like MVC, ORM and object-oriented prg.
Which is better to jump into ? Which one is more mature, powerful, understandable, object-oriented and easier to use by the time ?
What about Python Spring ...
Also, which of these 3 are better documented, are better for a cv and have more extensions?
Known languages: php, java, mysql
Thank you !
I've built several sites on Drupal and Django, my conclusion is: if you need to create something similar to the standard drupal (or Ubercart) feature-set, you don't have much time for development, and you don't expect hight load pressure on a site - you should pick Drupal.
But if you do need to create something more or less custom (no drupal modules already available) you should go with Django - it is quicker and more pleasurable to implement custom complex features using Django. For example if my goal is to implement a second stackoverflow, I'll prefer Django because it will be extremely complicated to implement this badge-based rating system with Drupal.
P.S.
Studying Python (and Django) is an investment in your future, I think. You'll never be able to implement something similar to DropBox using drupal and php, although it could be implemented with java - but java is not so good from development speed perspective.
I'm primarily a (happy) Drupal developer these days, but a friend whose dev skills surpass mine has switched happily from Drupal to Django. Here's his set of reasons.
Drupal and Django doesn't make for a good comparison, as they are quite different.
If all you need is a simple website with a CMS and Paypal, I would go for Drupal. Drupal's strength compared Django is it's many modules (modular system), which most of the time can get you where you want. Drupal is also extremely flexible, and you can change almost anything from within your own code, and there is a huge demand for Drupal developers. You can also let site builders create content, display content and much from from within the AI.
Django on the other hand, is more simple and structured. It's based a lot more on code, making it fast and easy to develop something, but hard for non coders to change certain things. For sites that require a lot of custom coding, I usually prefer working with Django. Python is also a more structured programming language than PHP (IMO), and it's easier to make more maintainable code.
Jump into what you like or what attracts you most after getting a little overview of the capabilities and constraints. I never worked with drupal, but I can recommend django.
Consider your deployment. Pretty much every host will support Drupal. If you go with Django, you will need to select a host that supports fast_cgi or wsgi
You already know php, so just for that you might want to stick with Drupal. However, I prefer Django over Drupal for many reasons.
http://www.reddit.com/r/django/comments/bhvhz/the_onion_uses_django_and_why_it_matters_to_us/ provides some excellent background.
Basically if want things done properly with lots of flexibility, go with Django. If you're very familiar with php, don't feel like learning python, and your site requirements are basic, go with Drupal.
Something to keep in mind is that Django is a bona fide web framework, whereas Drupal is more of a web platform. That is, sometimes you have to hack Drupal to get what you want or that it doesn't fit all situations.
I had never heard of Spring Python but based on the fact that their own site is powered by Drupal, I wouldn't recommend it. Especially if you know Java already, why not consider the original Spring platform?
I've been developing with Django for more than 2 years and have built a couple of Drupal sites in the meantime (per client's specific request to use Drupal). My conclusions are the following:
Even for a smaller site I would have done it quicker building it from scratch with django (or maybe even PHP) for a simple reason, writing code for me is faster than hunting through drupal's unorganized mess of menus and options, or hunting on the web for a module that implements hack X to enable feature Y.
Migrating a site from development to production with Drupal is a big PITA. You can forget about using a VCS tool. All your work is in in the MySQL dump (including configurations, programming logic, views etc.), a few hacked up modules and the uploaded files.

Website Development Problem CakePHP, WordPress or Start From Scratch?

I'm in the process of starting a new web site that is something like stackoverflow but a little bit more different along with making the members profiles highly more customizable I was thinking of building it from scratch using PHP, but was thinking of using CakePHP, but then I thought WordPress sounded better but I remember working with wordpress and it was a little bit slow at times when you tried to browse the web site.
So what I guess I'm trying to ask is that should I design the site from scratch? And I heard techcrunch.com and 9rules.com are completely done in WordPress, is this true?
Wordpress is a blogging engine, which is a specialised kind of CMS. It's not suitable for building something like Stack Overflow on.
CakePHP on the other hand is a framework - something to help you build a website so you're not starting from scratch. This would be a good bet.
For other PHP frameworks check these questions:
What PHP framework would you choose for a new application and why?
PHP Framework Decision - Analysis paralysis!
Be sure to check other frameworks too. CakePHP is a framework which makes a lot of choices for you. If your application fits in it probably works like a charm, but otherwise a framework can be a huge pain. Zend Framework has a lot more flexibility, but it also takes a lot more time to bootstrap your project. In the end it is all about personal preferences, so I would recommend you to just try some frameworks and find out how it feels for you.
Some frameworks:
Zend Framework
Symfony
CodeIgniter or it's successor Kohana
Wordpress isn't slow, if get decent web hosting and know how to tune a webserver. But no, it won't really suffice for this. FastCGI on a threaded webserver with enough memory to cover peak traffic is the way to go.
Drupal (and maybe Plone) could probably do what you want without coding, but you'd still have to learn a lot, so you might not gain much over just coding the thing.
Using wordpress or joomla or any other framework will require enormous emounts of custimization of the framework to meet your ends. If you are not very comfortable with using those frameworks and how they are built, you are probably better off writing by hand, and maybe develop your own framework that suits your own needs.
Hand code the novel aspects of your site first without concern for the final product. You goal should be to find what you really need and how you are going to need them. For instance, if you need a blog for the staff, then you can install WordPress and move on to the next problem (your branding can be duplicated to a WordPress theme).
If existing software solves the problem, then version 1.0 should be a Frankenstein solution (which sucks aesthetically). The idea is to map out the incongruities between the various problems you are trying to solve so that when you do rewrite everything you do not produce the same problems.
Ideally, you will spend most of your time adding value to what you need that is novel about the site.

Categories