mirror of
https://github.com/pattern-lab/patternlab-php.git
synced 2025-01-16 13:50:00 +01:00
laying in Pattern Lab 2
This commit is contained in:
parent
34d3ab2c0e
commit
b5769cc667
8
.gitignore
vendored
8
.gitignore
vendored
@ -1,7 +1,5 @@
|
||||
.DS_Store
|
||||
export/*
|
||||
public/*
|
||||
source/*
|
||||
config.ini
|
||||
latest-change.txt
|
||||
*-ck.js
|
||||
*.sass-cache/
|
||||
source/styleguide/*
|
||||
vendor/*
|
||||
|
2
LICENSE
2
LICENSE
@ -1,6 +1,6 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2013-14 Brad Frost, http://bradfrostweb.com & Dave Olsen, http://dmolsen.com
|
||||
Copyright (c) 2016 Brad Frost, http://bradfrostweb.com & Dave Olsen, http://dmolsen.com
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal in
|
||||
|
66
composer.json
Normal file
66
composer.json
Normal file
@ -0,0 +1,66 @@
|
||||
{
|
||||
"name": "pattern-lab/edition-mustache-standard",
|
||||
"description": "The Standard Edition of Pattern Lab for Mustache. Installs all Mustache-related dependencies.",
|
||||
"keywords": ["pattern lab", "mustache"],
|
||||
"homepage": "http://patternlab.io",
|
||||
"license": "MIT",
|
||||
"type": "project",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Dave Olsen",
|
||||
"email": "dmolsen@gmail.com",
|
||||
"homepage": "http://dmolsen.com",
|
||||
"role": "Lead Developer"
|
||||
}
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/pattern-lab/patternlab-php/issues",
|
||||
"wiki": "http://patternlab.io/docs/",
|
||||
"source": "https://github.com/pattern-lab/patternlab-php/releases"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"PatternLab": "core/src/"
|
||||
}
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.6",
|
||||
"pattern-lab/core": "^2.0.0",
|
||||
"pattern-lab/patternengine-mustache": "^2.0.0",
|
||||
"pattern-lab/styleguidekit-mustache-default": "^3.0.0"
|
||||
},
|
||||
"scripts": {
|
||||
"server": "php core/console --server",
|
||||
"generate": "php core/console --generate",
|
||||
"watch": "php core/console --watch",
|
||||
"start": "php core/console --server --with-watch",
|
||||
"post-install-cmd": [
|
||||
"PatternLab\\Installer::postInstallCmd"
|
||||
],
|
||||
"post-update-cmd": [
|
||||
"PatternLab\\Installer::postUpdateCmd"
|
||||
],
|
||||
"post-root-package-install": [
|
||||
"PatternLab\\Installer::setProjectInstall",
|
||||
"PatternLab\\Installer::getSuggestedStarterKits",
|
||||
"PatternLab\\Installer::getConfigOverrides"
|
||||
],
|
||||
"post-package-install": [
|
||||
"PatternLab\\Installer::postPackageInstall"
|
||||
],
|
||||
"post-package-update": [
|
||||
"PatternLab\\Installer::postPackageUpdate"
|
||||
],
|
||||
"pre-package-uninstall": [
|
||||
"PatternLab\\Installer::prePackageUninstall"
|
||||
]
|
||||
},
|
||||
"extra": {
|
||||
"patternlab": {
|
||||
"starterKitSuggestions": [
|
||||
"pattern-lab/starterkit-mustache-demo",
|
||||
"pattern-lab/starterkit-mustache-base"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
46
core/console
Normal file
46
core/console
Normal file
@ -0,0 +1,46 @@
|
||||
<?php
|
||||
|
||||
/*!
|
||||
* Pattern Lab Builder CLI
|
||||
*
|
||||
* Copyright (c) 2016 Dave Olsen, http://dmolsen.com
|
||||
* Licensed under the MIT license
|
||||
*
|
||||
*/
|
||||
|
||||
use \PatternLab\Config;
|
||||
use \PatternLab\Console;
|
||||
use \PatternLab\Dispatcher;
|
||||
use \PatternLab\Timer;
|
||||
|
||||
// check to see if json_decode exists. might be disabled in installs of PHP 5.5
|
||||
if (!function_exists("json_decode")) {
|
||||
print "Please check that your version of PHP includes the JSON extension. It's required for Pattern Lab to run. Aborting.\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
// set-up the project base directory
|
||||
$baseDir = __DIR__.DIRECTORY_SEPARATOR."..".DIRECTORY_SEPARATOR;
|
||||
|
||||
// auto-load classes
|
||||
if (file_exists($baseDir."vendor".DIRECTORY_SEPARATOR."autoload.php")) {
|
||||
require($baseDir."vendor".DIRECTORY_SEPARATOR."autoload.php");
|
||||
} else {
|
||||
print "it doesn't appear that pattern lab has been set-up yet...\n";
|
||||
print "please install pattern lab's dependencies by typing: composer install...\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
// start the timer
|
||||
Timer::start();
|
||||
|
||||
// load the options
|
||||
Console::init();
|
||||
Config::init($baseDir);
|
||||
|
||||
// initialize the dispatcher & note that the config has been loaded
|
||||
Dispatcher::init();
|
||||
Dispatcher::getInstance()->dispatch("config.configLoadEnd");
|
||||
|
||||
// run the console
|
||||
Console::run();
|
41
core/server/router.php
Normal file
41
core/server/router.php
Normal file
@ -0,0 +1,41 @@
|
||||
<?php
|
||||
|
||||
/*!
|
||||
* Router for the PHP Server
|
||||
*
|
||||
* Copyright (c) 2016 Dave Olsen
|
||||
* Licensed under the MIT license
|
||||
*
|
||||
*/
|
||||
|
||||
use \PatternLab\Config;
|
||||
|
||||
// set-up the project base directory
|
||||
$baseDir = __DIR__."/../../";
|
||||
|
||||
// auto-load classes
|
||||
if (file_exists($baseDir."vendor/autoload.php")) {
|
||||
require($baseDir."vendor/autoload.php");
|
||||
} else {
|
||||
print "it doesn't appear that pattern lab has been set-up yet...\n";
|
||||
print "please install pattern lab's dependencies by typing: php core/bin/composer.phar install...\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
// load the options and be quiet about it
|
||||
Config::init($baseDir, false);
|
||||
|
||||
if (($_SERVER["SCRIPT_NAME"] == "") || ($_SERVER["SCRIPT_NAME"] == "/")) {
|
||||
|
||||
require("index.html");
|
||||
|
||||
} else if (file_exists(Config::getOption("publicDir").$_SERVER["SCRIPT_NAME"])) {
|
||||
|
||||
return false;
|
||||
|
||||
} else {
|
||||
|
||||
header("HTTP/1.0 404 Not Found");
|
||||
print "file doesn't exist.";
|
||||
|
||||
}
|
162
core/src/PatternLab/Installer.php
Normal file
162
core/src/PatternLab/Installer.php
Normal file
@ -0,0 +1,162 @@
|
||||
<?php
|
||||
|
||||
/*!
|
||||
* Installer Class
|
||||
*
|
||||
* Copyright (c) 2016 Dave Olsen, http://dmolsen.com
|
||||
* Licensed under the MIT license
|
||||
*
|
||||
* References the InstallerUtil class that is included in pattern-lab/core
|
||||
*
|
||||
*/
|
||||
|
||||
namespace PatternLab;
|
||||
|
||||
use \Composer\Script\Event;
|
||||
use \Composer\Installer\PackageEvent;
|
||||
use \PatternLab\InstallerUtil;
|
||||
|
||||
class Installer {
|
||||
|
||||
protected static $installerInfo = array("projectInstall" => false, "packagesRemove" => false, "suggestedStarterKits" => array(), "configOverrides" => array(), "patternLabPackages" => array());
|
||||
|
||||
/**
|
||||
* Get any config overrides that may exist for the edition
|
||||
* @param {Object} a script event object from composer
|
||||
*/
|
||||
public static function getConfigOverrides(Event $event) {
|
||||
|
||||
$extra = $event->getComposer()->getPackage()->getExtra();
|
||||
if (isset($extra["patternlab"]) && isset($extra["patternlab"]["config"]) && is_array($extra["patternlab"]["config"])) {
|
||||
self::$installerInfo["configOverrides"] = $extra["patternlab"]["config"];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the package info from each patternlab-* package's composer.json
|
||||
* @param {String} the type of event fired during the composer install
|
||||
* @param {Object} a script event object from composer
|
||||
*/
|
||||
public static function getPackageInfo($type, $event) {
|
||||
|
||||
$package = ($type == "update") ? $event->getOperation()->getTargetPackage() : $event->getOperation()->getPackage();
|
||||
$packageType = $package->getType();
|
||||
$packageExtra = $package->getExtra();
|
||||
$packageInfo = array();
|
||||
|
||||
// make sure we're only evaluating pattern lab packages
|
||||
if (strpos($packageType,"patternlab-") !== false) {
|
||||
|
||||
$packageInfo["name"] = $package->getName();
|
||||
$packageInfo["type"] = $packageType;
|
||||
$packageInfo["pathBase"] = $event->getComposer()->getInstallationManager()->getInstallPath($package);
|
||||
$packageInfo["pathDist"] = $packageInfo["pathBase"].DIRECTORY_SEPARATOR."dist".DIRECTORY_SEPARATOR;
|
||||
$packageInfo["extra"] = (isset($packageExtra["patternlab"])) ? $packageExtra["patternlab"] : array();
|
||||
|
||||
self::$installerInfo["packages"][] = $packageInfo;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the suggested starter kits from the root package composer.json
|
||||
* @param {Object} a script event object from composer
|
||||
*/
|
||||
public static function getSuggestedStarterKits(Event $event) {
|
||||
|
||||
$extra = $event->getComposer()->getPackage()->getExtra();
|
||||
if (isset($extra["patternlab"]) && isset($extra["patternlab"]["starterKitSuggestions"]) && is_array($extra["patternlab"]["starterKitSuggestions"])) {
|
||||
self::$installerInfo["suggestedStarterKits"] = $extra["patternlab"]["starterKitSuggestions"];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Run the centralized postInstallCmd
|
||||
* @param {Object} a script event object from composer
|
||||
*/
|
||||
public static function postInstallCmd(Event $event) {
|
||||
|
||||
InstallerUtil::postInstallCmd(self::$installerInfo, $event);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Run the centralized postUpdateCmd
|
||||
* @param {Object} a script event object from composer
|
||||
*/
|
||||
public static function postUpdateCmd(Event $event) {
|
||||
|
||||
InstallerUtil::postUpdateCmd(self::$installerInfo, $event);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Clean-up when a package is removed
|
||||
* @param {Object} a script event object from composer
|
||||
*/
|
||||
public static function postPackageInstall(PackageEvent $event) {
|
||||
|
||||
self::getPackageInfo("install", $event);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Clean-up when a package is removed
|
||||
* @param {Object} a script event object from composer
|
||||
*/
|
||||
public static function postPackageUpdate(PackageEvent $event) {
|
||||
|
||||
self::getPackageInfo("update", $event);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Clean-up when a package is removed
|
||||
* @param {Object} a script event object from composer
|
||||
*/
|
||||
public static function prePackageUninstall(PackageEvent $event) {
|
||||
|
||||
// make sure the postUpdateCmd doesnt actually do anything
|
||||
self::setPackagesRemove();
|
||||
|
||||
// get the basic package info
|
||||
$package = $event->getOperation()->getPackage();
|
||||
$packageType = $package->getType();
|
||||
$packageInfo = array();
|
||||
|
||||
// make sure we're only evaluating pattern lab packages. remove attributes related to them.
|
||||
if (strpos($packageType,"patternlab-") !== false) {
|
||||
|
||||
$packageInfo["name"] = $package->getName();
|
||||
$packageInfo["type"] = $packageType;
|
||||
$packageInfo["pathBase"] = $event->getComposer()->getInstallationManager()->getInstallPath($package);
|
||||
|
||||
InstallerUtil::packageRemove($packageInfo);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the packages remove boolean to true
|
||||
*/
|
||||
public static function setPackagesRemove() {
|
||||
|
||||
self::$installerInfo["packagesRemove"] = true;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the project install boolean to true
|
||||
* @param {Object} a script event object from composer
|
||||
*/
|
||||
public static function setProjectInstall(Event $event) {
|
||||
|
||||
self::$installerInfo["projectInstall"] = true;
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -1,3 +0,0 @@
|
||||
To populate this directory you need to generate the PHP version of Pattern Lab for the first time.
|
||||
To do so either run "php core/builder.php -g" at the command line or, if you're on a Mac, double-click
|
||||
on "core/scripts/generateSite.command".
|
Loading…
x
Reference in New Issue
Block a user