Coder Social home page Coder Social logo

joomla / joomla-framework Goto Github PK

View Code? Open in Web Editor NEW
189.0 78.0 141.0 24.7 MB

[READ-ONLY] This repo is no longer in active development. Please see https://github.com/joomla-framework for the individual Framework packages.

Home Page: http://framework.joomla.org

License: GNU General Public License v2.0

PHP 99.86% Shell 0.14%

joomla-framework's Introduction

Joomla! Framework

Build Status

What is the Joomla! Framework ?

The Joomla! Framework is a platform for writing web and command line applications in PHP. It is free and open source software, distributed under the GNU General Public License version 2 or later.

It is composed of code originally developed for the Joomla Content Management System (CMS). For more information about the Joomla CMS visit http://www.joomla.org/about-joomla.html.

For news and information about developing with Joomla, please visit http://developer.joomla.org.

View the Joomla Framework API Documentation at http://api.joomla.org and is powered by phpDocumentor 2.

You can discuss Joomla Framework development by joining the mailing list at http://groups.google.com/group/joomla-dev-framework.

Requirements

  • PHP 5.3.10
  • Each package has their own requirements as well. Ex: The Image package requires the PHP GD extension. Please see the composer.json in each package repository for these requirements.
  • Applications implementing the Joomla Framework must implement the 'JPATH_ROOT' constant which should be the root path of the application.

Installation

The simplest way to get up and running with the Joomla Framework is to use composer. Basic installation for composer can be found below, for additional information on installing composer, read the documentation.

curl -sS https://getcomposer.org/installer | php

Full Installation Via Composer

Composer has the ability to download the full stack framework (including all our packages) as a project starter using the "create-project" command. In the example below, "myAwesomeApp" is the folder where you want to create the project. It should not be created yet.

php composer.phar create-project --prefer-dist joomla/framework myAwesomeApp

If you are interested in working with the development code (in the master branch), and not a tagged stable distribution, then pass in the --stability="dev" command after --prefer-dist.

Package Installation Via Composer

There are two ways to add our packages to your existing composer powered application.

Adding packages manually to the require option in your composer.json.
{
    "require": {
        "joomla/PACKAGENAME": "VERSION"
    }
}

and then run install (or update).

php composer.phar install
Adding packages using composer require
php composer.phar require joomla/packagename:version

Full Installation Via Git

git clone git://github.com/joomla/joomla-framework.git

Documentation

General documentation about the Joomla Framework can be found under the /docs folder of this repository. In addition, each package has documentation in a README.md file.

Reporting Bugs and Issue

Bugs and issues found in the Joomla Framework code can be reported on the Issues list. Even for distributed packages where the code is in another repo, please submit issues to this issue tracker.

Contributing

All kind of contributions are welcome. Please read about how to contribute here.

You may find tasks you can do on the Issues list by filtering on labels and milestones.

joomla-framework's People

Contributors

aaronschmitz avatar asika32764 avatar chdemko avatar dextercowley avatar dianaprajescu avatar dongilbert avatar eddieajau avatar eirslett avatar elinw avatar elkuku avatar ercanozkaya avatar florianv avatar gpongelli avatar hackwar avatar hieblmedia avatar ianmacl avatar infograf768 avatar juliopontes avatar louislandry avatar mbabker avatar nprasath002 avatar oc666 avatar okonomiyaki3000 avatar pasamio avatar phproberto avatar realityking avatar robschley avatar rvsjoen avatar severdia avatar stefanneculai avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

joomla-framework's Issues

Update docs/analysis.md

This file needs a review in terms of how to run tests on the Framework. Note there are two ways.

  1. Tests can be run from root just like in the old platform.
  2. Tests can be run from the root of each Package as if they were installed by Composer.

Write documentation for Application package

Extensive developer documention is required to teach developers how to start building the various types of applications.

  • Cli
  • Web
  • Daemon
  • Web Client
  • Web Router Base
  • Web Router Rest

Update /README.markdown

Text needs to be changed from referring to "Platform" to refer to "Framework".

Text needs to be reviewed in general as being appropriate for the "home" page of the repositories instructions.

Remove @subpackage

The @subpackage tag is deprecated so we need to remove it from all files.

Also remove the extra new line after it in the file header DocBlock. In that case, the final result should look something like:

<?php
/**
 * @package    Joomla\Framework
 * @copyright  Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
 * @license    GNU General Public License version 2 or later; see LICENSE
 */

Note that you will need to adjust the alignment of other tags after you remove @subpackage. This affects file header and class docblocks. Please run the code sniffer after you change the files.

Refactor usage of TestReflection

We need to change all the usage of TestReflection. In a file where this is used, you will need to add:

use Joomla\Test\Helper;

TestReflection::setValue should be changed to Helper::setValue.

TestReflection::getValue should be changed to Helper::getValue.

TestReflection::invoke should be changed to Helper::invoke.

Remove coupling to JFactory

We need to remove the coupling to the old JFactory, now \Joomla\Factory.

  • Application
  • Archive
  • Client
  • Controller
  • Filesystem
  • Filter
  • Form
  • Http
  • Language
  • Log
  • Model
  • OAuth1
  • OAuth2
  • Session

Improve documentation for Github package

More complete developer documentation and examples are required for the Github package to cover all available options.

  • Account
  • Commits
  • Forks
  • Gists
  • Hooks
  • Http
  • Issues
  • Milestones
  • Object
  • Pulls
  • Refs
  • Statuses

Get tests running in the respective packages, independently

See the Date package for a good example.

  • phpunit.xml.dist needs to be copied from the Date package into each package and test the running of tests.
  • bootstrap.php needs to be copied fromDate\Tests` to the corresponding package you are working on.
  • Each test file needs to be namepaced, for example, for the Date package, the namespace is \Joomla\Date\Tests.

Complete:

  • Application
  • Archive
  • Cache
  • Controller
  • Crypt
  • Data
  • Database
  • Date
  • DI
  • Event
  • Facebook
  • Filesystem
  • Filter
  • Form
  • Github
  • Google
  • Http
  • Image
  • Input
  • Keychain
  • Language
  • Ldap
  • Linkedin
  • Log
  • Model
  • Oauth1
  • Oauth2
  • Profiler
  • Registry
  • Router
  • Session
  • String
  • Twitter
  • Uri
  • Utilities
  • View

Decoupled JText where possible

We need to get JText out of the Framework as much as possible (the Form package is one exception in a few places). The exceptions or errors just need to be converted to natural language strings.

Decouple the rendering of Joomla\Profiler

We need to take the rendering elements out of Profiler, or at least decouple it somehow. We should be storing the raw data internally and should be able to return that raw data.

Update @since to version 1.0

We are reseting the entire Framework to version 1.0 so all @since tags need to be reset to 1.0. For example:

    /**
     * An instance of the class to test.
     *
     * @var    Joomla\Date\Date
     * @since  1.0
     */
    private $instance;

Clean all deprecated code

Any code marked with @deprecated needs to be removed. We are not supporting any deprecated code in the new Framework.

Improve documentation for Crypt package

The Crypt package currently has minimal developer documentation.

  • Crypt
  • Cipher
  • Cipher 3DES
  • Cipher Blowfish
  • Cipher MCrypt
  • Cipher Rijndael256
  • Cipher Simple
  • Key
  • Password
  • Password Simple

[Database] Driver date format

I saw JDate::toSql has been removed which is good, but I don't see a replacement yet

We should have a method like :

public function formatDate(DateTime $date);

in the drivers.

Which PHP version to use?

I saw composer.json specified PHP version 5.3.10 as a minimum requirement for Joomla Framework. Why is this the exact version? Why not 5.3.9 or 5.3.11? Why not go all the way and use 5.4.x, which was released right after 5.3.10?

See also #36

Tests for new Cache package

We've brought in the new Cache package that Louis Landry did a while back. Unfortunately it has not tests so these need to be done.

Update docs/introduction.md

This document needs a lot of work as a result of the Composer changes. Please ask about how you can help improve it.

Write documentation for the Cache package

Developer documentation is required for the Cache package and the available caching handlers.

  • General documentation for Cache
  • Apc
  • File
  • Memcached
  • None
  • Wincache
  • XCache

Refactor logging in Database package

The database package is tightly coupled to the Joomla Log package at the moment. We need to change this to inject a PSR-3 logger.

Tasks:

  1. Add a public setLogger(\Psr\Log\LoggerInterface $logger) method that sets a protected logger property.
  2. Add a protected log($level, $message, array $context = array()) method to Driver that checks if a logger has been set, and if so logs the message.
  3. Refactor the usage of Log to use the log method.
  4. Update unit tests.

Change @package

We need to change the @Package tag to Joomla\Framework for core class files and Joomla\Framework\Test for unit test files. For example:

<?php
/**
 * @package    Joomla\Framework
 */

Copy mocks into local test folders

We need to copy all the mocks (and probably refactor them) to all the local test folders. See examples in the Database (Driver and Query) and Model (Model) packages.

Update docs/testing.md

This is a short doc to help you write unit tests for the Framework. It needs freshening and maybe expanding to be more helpful and informative.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.