本文整理汇总了PHP中Pagekit\Application::path方法的典型用法代码示例。如果您正苦于以下问题:PHP Application::path方法的具体用法?PHP Application::path怎么用?PHP Application::path使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Pagekit\Application
的用法示例。
在下文中一共展示了Application::path方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: indexAction
/**
* @Route("/", methods="GET")
* @Request({"folder": "string"})
*/
public function indexAction($folder = '')
{
$images = [];
$folder = trim($folder, '/');
$pttrn = '/\\.(jpg|jpeg|gif|png)$/i';
$dir = App::path();
if (!($files = glob($dir . '/' . $folder . '/*'))) {
return [];
}
foreach ($files as $img) {
// extension filter
if (!preg_match($pttrn, $img)) {
continue;
}
$data = array();
$data['filename'] = basename($img);
// remove extension
$data['title'] = preg_replace('/\\.[^.]+$/', '', $data['filename']);
// remove leading number
$data['title'] = preg_replace('/^\\d+\\s?+/', '', $data['title']);
// remove trailing numbers
$data['title'] = preg_replace('/\\s?+\\d+$/', '', $data['title']);
// replace underscores with space and add capital
$data['title'] = ucfirst(trim(str_replace(['_', '-'], ' ', $data['title'])));
$data['image']['src'] = $folder . '/' . basename($img);
$data['image']['alt'] = $data['title'];
$images[] = $data;
}
return $images;
}
示例2: getRelativePath
/**
* Returns the path relative to the root.
*
* @param string $path
* @return string
*/
protected function getRelativePath($path)
{
if (0 === strpos($path, App::path())) {
$path = ltrim(str_replace('\\', '/', substr($path, strlen(App::path()))), '/');
}
return $path;
}
示例3: getPath
/**
* @param string $path
* @return string
*/
protected function getPath($path = '')
{
$root = strtr(App::path(), '\\', '/');
$path = $this->normalizePath($root . '/storage/' . $path);
if (!is_dir($path)) {
App::file()->makeDir($path);
}
return $path;
}
示例4: update
/**
* Runs Pagekit self update.
*
* @param $file
* @throws \Exception
*/
public function update($file)
{
try {
$path = App::path();
if (!file_exists($file)) {
throw new \RuntimeException('File not found.');
}
$this->output->write('Preparing update...');
$fileList = $this->getFileList($file);
unset($fileList[array_search('.htaccess', $fileList)]);
$fileList = array_values(array_filter($fileList, function ($file) {
foreach ($this->ignoreFolder as $ignore) {
if (strpos($file, $ignore) === 0) {
return false;
}
}
return true;
}));
if ($this->isWritable($fileList, $path) !== true) {
throw new \RuntimeException(array_reduce($fileList, function ($carry, $file) {
return $carry . sprintf("'%s' not writable\n", $file);
}));
}
$requirements = (include "zip://{$file}#app/installer/requirements.php");
if ($failed = $requirements->getFailedRequirements()) {
throw new \RuntimeException(array_reduce($failed, function ($carry, $problem) {
return $carry . "\n" . $problem->getHelpText();
}));
}
$this->output->writeln('<info>done.</info>');
$this->output->write('Entering update mode...');
$this->setUpdateMode(true);
$this->output->writeln('<info>done.</info>');
$this->output->write('Extracting files...');
$this->extract($file, $fileList, $path);
$this->output->writeln('<info>done.</info>');
$this->output->write('Removing old files...');
foreach ($this->cleanup($fileList, $path) as $file) {
$this->writeln(sprintf('<error>\'%s\\’ could not be removed</error>', $file));
}
unlink($file);
$this->output->writeln('<info>done.</info>');
$this->output->write('Deactivating update mode...');
$this->setUpdateMode(false);
$this->output->writeln('<info>done.</info>');
if (function_exists('opcache_reset')) {
opcache_reset();
}
} catch (\Exception $e) {
@unlink($file);
throw $e;
}
}
示例5: update
/**
* Runs Pagekit self update.
*
* @param $file
*/
public function update($file)
{
try {
$path = App::path();
if (!file_exists($file)) {
throw new \RuntimeException('File not found.');
}
$this->output->write('Preparing update...');
$fileList = $this->getFileList($file);
unset($fileList[array_search('.htaccess', $fileList)]);
if ($this->isWritable($fileList, $path) !== true) {
throw new \RuntimeException(array_reduce($fileList, function ($carry, $file) {
return $carry . sprintf("'%s' not writable\n", $file);
}));
}
$this->output->writeln('<info>done.</info>');
$this->output->write('Entering update mode...');
$this->setUpdateMode(true);
$this->output->writeln('<info>done.</info>');
$this->output->write('Extracting files...');
$this->extract($file, $fileList, $path);
$this->output->writeln('<info>done.</info>');
$this->output->write('Removing old files...');
foreach ($this->cleanup($fileList, $path) as $file) {
$this->writeln(sprintf('<error>\'%s\\’ could not be removed</error>', $file));
}
unlink($file);
$this->output->writeln('<info>done.</info>');
$this->output->write('Deactivating update mode...');
$this->setUpdateMode(false);
$this->output->writeln('<info>done.</info>');
if (function_exists('opcache_reset')) {
opcache_reset();
}
} catch (\Exception $e) {
@unlink($file);
$this->output->writeln(sprintf("\n<error>%s</error>", $e->getMessage()));
}
}
示例6: getCachepath
/**
* @return bool|string
*/
public function getCachepath()
{
$folder = App::path() . '/' . App::module('bixie/portfolio')->config('cache_path');
if (file_exists($folder) && is_writable($folder)) {
//all fine, quick return
return $folder;
}
//try to create user-folder
App::file()->makeDir($folder, 0755);
if (!file_exists($folder)) {
//create default folder
$folder = $this->app['path.cache'] . '/portfolio';
if (!file_exists($folder)) {
App::file()->makeDir($folder, 0755);
}
}
if (!file_exists($folder) || !is_writable($folder)) {
//give up
return false;
}
return $folder;
}
示例7: getPath
protected function getPath($path = '')
{
$root = strtr(App::path(), '\\', '/');
$path = $this->normalizePath($root . '/' . App::request()->get('root') . '/' . App::request()->get('path') . '/' . $path);
return 0 === strpos($path, $root) ? $path : false;
}
示例8: installAction
/**
* @Request({"config": "array", "option": "array", "user": "array"})
*/
public function installAction($config = [], $option = [], $user = [])
{
$status = $this->checkAction($config);
$message = $status['message'];
$status = $status['status'];
try {
if ('no-connection' == $status) {
App::abort(400, __('No database connection.'));
}
if ('tables-exist' == $status) {
App::abort(400, $message);
}
$scripts = new PackageScripts(App::path() . '/app/system/scripts.php');
$scripts->install();
App::db()->insert('@system_user', ['name' => $user['username'], 'username' => $user['username'], 'password' => App::get('auth.password')->hash($user['password']), 'status' => 1, 'email' => $user['email'], 'registered' => date('Y-m-d H:i:s'), 'roles' => '2,3']);
$option['system']['version'] = App::version();
$option['system']['extensions'] = ['blog'];
$option['system']['site']['theme'] = 'theme-one';
foreach ($option as $name => $values) {
App::config()->set($name, App::config($name)->merge($values));
}
if ($this->packages) {
$installer = new PackageManager(new NullOutput());
$installer->install($this->packages);
}
if (file_exists(__DIR__ . '/../../install.php')) {
require_once __DIR__ . '/../../install.php';
}
if (!$this->config) {
$configuration = new Config();
$configuration->set('application.debug', false);
foreach ($config as $key => $value) {
$configuration->set($key, $value);
}
$configuration->set('system.secret', App::get('auth.random')->generateString(64));
if (!file_put_contents($this->configFile, $configuration->dump())) {
$status = 'write-failed';
App::abort(400, __('Can\'t write config.'));
}
}
App::module('system/cache')->clearCache();
$status = 'success';
} catch (DBALException $e) {
$status = 'db-sql-failed';
$message = __('Database error: %error%', ['%error%' => $e->getMessage()]);
} catch (\Exception $e) {
$message = $e->getMessage();
}
return ['status' => $status, 'message' => $message];
}
示例9: resizeImage
/**
* @param string $source
* @param array $options
* @return bool|mixed
*/
protected function resizeImage($source, $options)
{
try {
$cachepath = $this->getCachePath($source, $options);
if (!file_exists($cachepath)) {
$image = new SimpleImage(App::path() . '/' . $source);
if (!empty($options['width']) && empty($options['height'])) {
$image->fit_to_width($options['width']);
}
if (!empty($options['height']) && empty($options['width'])) {
$image->fit_to_height($options['height']);
}
if (!empty($options['height']) && !empty($options['width'])) {
$image->thumbnail($options['width'], $options['height']);
}
$image->save($cachepath);
}
return trim(str_replace(App::path(), '', $cachepath), '/');
} catch (\Exception $e) {
return false;
}
}
示例10: basePath
/**
* @param $fullpath
* @return string
*/
protected function basePath($fullpath)
{
return trim(str_replace(App::path(), '', $fullpath), '/');
}
示例11: trim
<?php
use Pagekit\Application as App;
return ['name' => 'bixie/framework', 'type' => 'extension', 'main' => 'Bixie\\Framework\\FrameworkModule', 'fieldtypes' => 'fieldtypes', 'autoload' => ['Bixie\\Framework\\' => 'src'], 'routes' => ['/api/bixframework' => ['name' => '@bixframework/api', 'controller' => ['Bixie\\Framework\\Controller\\ImageApiController']]], 'resources' => ['bixie/framework:' => ''], 'permissions' => ['bixframework: upload files' => ['title' => 'Upload files']], 'settings' => 'settings-bixframework', 'config' => ['image_cache_path' => trim(str_replace(App::path(), '', App::get('path.storage') . '/bixframework'), '/')], 'events' => ['view.scripts' => function ($event, $scripts) use($app) {
$scripts->register('framework-settings', 'bixie/framework:app/bundle/settings.js', '~extensions');
$scripts->register('bixie-framework', 'bixie/framework:app/bundle/bixie-framework.js', ['vue']);
//register fields
$scripts->register('bixie-fieldtypes', 'bixie/framework:app/bundle/bixie-fieldtypes.js', ['vue', 'bixie-framework', 'uikit-tooltip']);
foreach ($app->module('bixie/framework')->getFieldTypes() as $fieldType) {
$fieldType->registerScripts($scripts);
}
}, 'console.init' => function ($event, $console) {
$console->add(new Bixie\Framework\Console\Commands\TranslateCommand());
}]];
示例12: function
<?php
use Pagekit\Application as App;
use Bixie\Portfolio\Event\RouteListener;
use Bixie\Portfolio\PortfolioImageHelper;
return ['name' => 'bixie/portfolio', 'type' => 'extension', 'main' => 'Bixie\\Portfolio\\PortfolioModule', 'autoload' => ['Bixie\\Portfolio\\' => 'src'], 'nodes' => ['portfolio' => ['name' => '@portfolio', 'label' => 'Portfolio', 'controller' => 'Bixie\\Portfolio\\Controller\\SiteController', 'protected' => true, 'frontpage' => true]], 'routes' => ['/portfolio' => ['name' => '@portfolio', 'controller' => ['Bixie\\Portfolio\\Controller\\PortfolioController']], '/api/portfolio' => ['name' => '@portfolio/api', 'controller' => ['Bixie\\Portfolio\\Controller\\ProjectApiController', 'Bixie\\Portfolio\\Controller\\ImageApiController']]], 'resources' => ['bixie/portfolio:' => ''], 'widgets' => ['widgets/portfolio-projects.php'], 'menu' => ['portfolio' => ['label' => 'Portfolio', 'icon' => 'bixie/portfolio:icon.svg', 'url' => '@portfolio/project', 'access' => 'portfolio: manage portfolio', 'active' => '@portfolio/project*'], 'portfolio: project' => ['label' => 'Projects', 'parent' => 'portfolio', 'url' => '@portfolio/project', 'access' => 'portfolio: manage portfolio', 'active' => '@portfolio/project*'], 'portfolio: settings' => ['label' => 'Settings', 'parent' => 'portfolio', 'url' => '@portfolio/settings', 'access' => 'portfolio: manage settings', 'active' => '@portfolio/settings*']], 'permissions' => ['portfolio: manage portfolio' => ['title' => 'Manage portfolio'], 'portfolio: manage settings' => ['title' => 'Manage settings']], 'settings' => '@portfolio/settings', 'config' => ['portfolio_title' => 'My portfolio', 'portfolio_text' => '<p>This is an overview of my latest projects.</p>', 'portfolio_image' => '', 'projects_per_page' => 20, 'project_ordering' => 'date|DESC', 'portfolio_image_align' => 'left', 'columns' => 1, 'columns_small' => 2, 'columns_medium' => '', 'columns_large' => 4, 'columns_xlarge' => 6, 'columns_gutter' => 20, 'filter_tags' => true, 'teaser' => ['show_title' => true, 'show_subtitle' => true, 'show_intro' => true, 'show_image' => true, 'show_client' => true, 'show_tags' => true, 'show_date' => true, 'show_data' => true, 'show_readmore' => true, 'show_thumbs' => true, 'template' => 'panel', 'panel_style' => 'uk-panel-box', 'overlay' => 'uk-overlay uk-overlay-hover', 'overlay_position' => '', 'overlay_effect' => 'uk-overlay-fade', 'overlay_image_effect' => 'uk-overlay-scale', 'content_align' => 'left', 'tags_align' => 'uk-flex-center', 'title_size' => 'uk-h3', 'title_color' => '', 'read_more' => 'Read more', 'link_image' => 'uk-button', 'read_more_style' => 'uk-button', 'readmore_align' => 'uk-text-center', 'thumbsize' => ['width' => 400, 'height' => ''], 'columns' => 1, 'columns_small' => 2, 'columns_medium' => '', 'columns_large' => 4, 'columns_xlarge' => 6, 'columns_gutter' => 20], 'project' => ['image_align' => 'left', 'metadata_position' => 'content-top', 'tags_align' => 'uk-flex-center', 'tags_position' => 'sidebar', 'show_navigation' => 'bottom', 'thumbsize' => ['width' => 400, 'height' => ''], 'overlay_title_size' => 'uk-h3', 'overlay' => 'uk-overlay uk-overlay-hover', 'overlay_position' => '', 'overlay_effect' => 'uk-overlay-fade', 'overlay_image_effect' => 'uk-overlay-scale', 'columns' => 1, 'columns_small' => 2, 'columns_medium' => '', 'columns_large' => 4, 'columns_xlarge' => 6, 'columns_gutter' => 20], 'cache_path' => str_replace(App::path(), '', App::get('path.cache') . '/portfolio'), 'date_format' => 'F Y', 'markdown' => true, 'datafields' => []], 'events' => ['boot' => function ($event, $app) {
$app->subscribe(new RouteListener());
$app->extend('view', function ($view) use($app) {
return $view->addHelper(new PortfolioImageHelper($app));
});
//todo event to clear cache?
}, 'view.scripts' => function ($event, $scripts) use($app) {
$scripts->register('uikit-grid', 'app/assets/uikit/js/components/grid.min.js', 'uikit');
$scripts->register('uikit-lightbox', 'app/assets/uikit/js/components/lightbox.min.js', 'uikit');
}, 'console.init' => function ($event, $console) {
$console->add(new Bixie\Portfolio\Console\Commands\TranslateCommand());
}]];