本文整理汇总了PHP中Nette\Utils\Strings类的典型用法代码示例。如果您正苦于以下问题:PHP Strings类的具体用法?PHP Strings怎么用?PHP Strings使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Strings类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: preUpload
/**
* @ORM\PreFlush()
*/
public function preUpload()
{
if ($this->file) {
if ($this->file instanceof FileUpload) {
$basename = $this->file->getSanitizedName();
$basename = $this->suggestName($this->getFilePath(), $basename);
$this->setName($basename);
} else {
$basename = trim(Strings::webalize($this->file->getBasename(), '.', FALSE), '.-');
$basename = $this->suggestName(dirname($this->file->getPathname()), $basename);
$this->setName($basename);
}
if ($this->_oldPath && $this->_oldPath !== $this->path) {
@unlink($this->getFilePathBy($this->_oldProtected, $this->_oldPath));
}
if ($this->file instanceof FileUpload) {
$this->file->move($this->getFilePath());
} else {
copy($this->file->getPathname(), $this->getFilePath());
}
return $this->file = NULL;
}
if (($this->_oldPath || $this->_oldProtected !== NULL) && ($this->_oldPath != $this->path || $this->_oldProtected != $this->protected)) {
$oldFilePath = $this->getFilePathBy($this->_oldProtected !== NULL ? $this->_oldProtected : $this->protected, $this->_oldPath ?: $this->path);
if (file_exists($oldFilePath)) {
rename($oldFilePath, $this->getFilePath());
}
}
}
示例2: setValue
/**
* Sets selected items (by keys).
* @param array
* @return self
*/
public function setValue($values)
{
if (is_scalar($values) || $values === NULL) {
$values = (array) $values;
} elseif (!is_array($values)) {
throw new Nette\InvalidArgumentException(sprintf("Value must be array or NULL, %s given in field '%s'.", gettype($values), $this->name));
}
$flip = [];
foreach ($values as $value) {
if (!is_scalar($value) && !method_exists($value, '__toString')) {
throw new Nette\InvalidArgumentException(sprintf("Values must be scalar, %s given in field '%s'.", gettype($value), $this->name));
}
$flip[(string) $value] = TRUE;
}
$values = array_keys($flip);
if ($this->checkAllowedValues && ($diff = array_diff($values, array_keys($this->items)))) {
$set = Nette\Utils\Strings::truncate(implode(', ', array_map(function ($s) {
return var_export($s, TRUE);
}, array_keys($this->items))), 70, '...');
$vals = (count($diff) > 1 ? 's' : '') . " '" . implode("', '", $diff) . "'";
throw new Nette\InvalidArgumentException("Value{$vals} are out of allowed set [{$set}] in field '{$this->name}'.");
}
$this->value = $values;
return $this;
}
示例3: constructUrl
public function constructUrl(Request $appRequest, Url $refUrl)
{
// Module prefix not match.
if ($this->module && !Strings::startsWith($appRequest->getPresenterName(), $this->module)) {
return null;
}
$params = $appRequest->getParameters();
$urlStack = [];
// Module prefix
$moduleFrags = explode(":", Strings::lower($appRequest->getPresenterName()));
$resourceName = array_pop($moduleFrags);
$urlStack += $moduleFrags;
// Resource
$urlStack[] = Strings::lower($resourceName);
// Id
if (isset($params['id']) && is_scalar($params['id'])) {
$urlStack[] = $params['id'];
unset($params['id']);
}
// Set custom action
if (isset($params['action']) && $this->_isApiAction($params['action'])) {
unset($params['action']);
}
$url = $refUrl->getBaseUrl() . implode('/', $urlStack);
// Add query parameters
if (!empty($params)) {
$url .= "?" . http_build_query($params);
}
return $url;
}
示例4: getPresenterClass
/**
* Generates and checks presenter class name.
* @param string presenter name
* @return string class name
* @throws InvalidPresenterException
*/
public function getPresenterClass(&$name)
{
if (isset($this->cache[$name])) {
return $this->cache[$name];
}
if (!is_string($name) || !Nette\Utils\Strings::match($name, '#^[a-zA-Z\\x7f-\\xff][a-zA-Z0-9\\x7f-\\xff:]*\\z#')) {
throw new InvalidPresenterException("Presenter name must be alphanumeric string, '{$name}' is invalid.");
}
$class = $this->formatPresenterClass($name);
if (!class_exists($class)) {
throw new InvalidPresenterException("Cannot load presenter '{$name}', class '{$class}' was not found.");
}
$reflection = new \ReflectionClass($class);
$class = $reflection->getName();
if (!$reflection->implementsInterface('Nette\\Application\\IPresenter')) {
throw new InvalidPresenterException("Cannot load presenter '{$name}', class '{$class}' is not Nette\\Application\\IPresenter implementor.");
} elseif ($reflection->isAbstract()) {
throw new InvalidPresenterException("Cannot load presenter '{$name}', class '{$class}' is abstract.");
}
$this->cache[$name] = $class;
if ($name !== ($realName = $this->unformatPresenterClass($class))) {
trigger_error("Case mismatch on presenter name '{$name}', correct name is '{$realName}'.", E_USER_WARNING);
$name = $realName;
}
return $class;
}
示例5: __construct
/**
* @param Task $task
* @param \SimpleXMLElement|null $pmml
* @param DatabaseFactory $databaseFactory
* @param PreprocessingFactory $preprocessingFactory
* @param string $appVersion =''
*/
public function __construct(Task $task, \SimpleXMLElement $pmml = null, DatabaseFactory $databaseFactory, PreprocessingFactory $preprocessingFactory, $appVersion = '')
{
if ($task instanceof Task) {
$this->task = $task;
$this->miner = $task->miner;
}
$this->appVersion = $appVersion;
if (!empty($pmml)) {
if ($pmml instanceof \SimpleXMLElement) {
$this->pmml = $pmml;
} elseif (is_string($pmml)) {
$this->pmml = simplexml_load_string($pmml);
}
}
if (!$pmml instanceof \SimpleXMLElement) {
$this->prepareBlankPmml();
}
$this->appendTaskInfo();
$this->databaseFactory = $databaseFactory;
$this->preprocessingFactory = $preprocessingFactory;
$connectivesArr = Cedent::getConnectives();
foreach ($connectivesArr as $connective) {
$this->connectivesArr[$connective] = Strings::firstUpper($connective);
}
}
示例6: setValue
public function setValue($values)
{
if (is_scalar($values) || $values === NULL) {
$values = (array) $values;
} elseif (!is_array($values)) {
throw new Nette\InvalidArgumentException(sprintf("Value must be array or NULL, %s given in field '%s'.", gettype($values), $this->name));
}
$flip = array();
foreach ($values as $value) {
if (!is_scalar($value) && !method_exists($value, '__toString')) {
throw new Nette\InvalidArgumentException(sprintf("Values must be scalar, %s given in field '%s'.", gettype($value), $this->name));
}
$flip[(string) $value] = TRUE;
}
$values = array_keys($flip);
$items = $this->items;
$nestedKeys = array();
array_walk_recursive($items, function ($value, $key) use(&$nestedKeys) {
$nestedKeys[] = $key;
});
if ($diff = array_diff($values, $nestedKeys)) {
$range = Nette\Utils\Strings::truncate(implode(', ', array_map(function ($s) {
return var_export($s, TRUE);
}, $nestedKeys)), 70, '...');
$vals = (count($diff) > 1 ? 's' : '') . " '" . implode("', '", $diff) . "'";
throw new Nette\InvalidArgumentException("Value{$vals} are out of allowed range [{$range}] in field '{$this->name}'.");
}
$this->value = $values;
return $this;
}
示例7: sanitize
/**
* Filter: removes unnecessary whitespace and shortens value to control's max length.
*
* @return string
*/
public function sanitize($value)
{
if ($this->control->maxlength && Nette\Utils\Strings::length($value) > $this->control->maxlength) {
$value = Nette\Utils\Strings::substring($value, 0, $this->control->maxlength);
}
return Nette\Utils\Strings::trim(strtr($value, "\r\n", ' '));
}
示例8: from
/**
* @return self
*/
public static function from(\ReflectionParameter $from)
{
$param = new static();
$param->name = $from->getName();
$param->reference = $from->isPassedByReference();
if ($from->isArray()) {
$param->typeHint = 'array';
} elseif (PHP_VERSION_ID >= 50400 && $from->isCallable()) {
$param->typeHint = 'callable';
} else {
try {
$param->typeHint = $from->getClass() ? '\\' . $from->getClass()->getName() : NULL;
} catch (\ReflectionException $e) {
if (preg_match('#Class (.+) does not exist#', $e->getMessage(), $m)) {
$param->typeHint = '\\' . $m[1];
} else {
throw $e;
}
}
}
$param->optional = PHP_VERSION_ID < 50407 ? $from->isOptional() || $param->typeHint && $from->allowsNull() : $from->isDefaultValueAvailable();
$param->defaultValue = PHP_VERSION_ID === 50316 ? $from->isOptional() : $from->isDefaultValueAvailable() ? $from->getDefaultValue() : NULL;
$namespace = $from->getDeclaringClass() ? $from->getDeclaringClass()->getNamespaceName() : NULL;
$namespace = $namespace ? "\\{$namespace}\\" : '\\';
if (Nette\Utils\Strings::startsWith($param->typeHint, $namespace)) {
$param->typeHint = substr($param->typeHint, strlen($namespace));
}
return $param;
}
示例9: startup
public function startup()
{
parent::startup();
$this->dir = new DirEntity();
$this->dir->setInvisible(TRUE);
$this->dir->setName(Strings::webalize(get_class($this)) . Strings::random());
}
示例10: getGitInfo
/**
* Returns Git info
*
* @return array
*/
public static function getGitInfo()
{
$gitBinary = VP_GIT_BINARY;
$info = [];
$process = new Process(ProcessUtils::escapeshellarg($gitBinary) . " --version");
$process->run();
$info['git-binary-as-configured'] = $gitBinary;
$info['git-available'] = $process->getErrorOutput() === null || !strlen($process->getErrorOutput());
if ($info['git-available'] === false) {
$info['output'] = ['stdout' => trim($process->getOutput()), 'stderr' => trim($process->getErrorOutput())];
$info['env-path'] = getenv('PATH');
return $info;
}
$output = trim($process->getOutput());
$match = Strings::match($output, "~git version (\\d[\\d\\.]+\\d).*~");
$version = $match[1];
$gitPath = "unknown";
if ($gitBinary == "git") {
$osSpecificWhereCommand = strtoupper(substr(PHP_OS, 0, 3)) === 'WIN' ? "where" : "which";
$process = new Process("{$osSpecificWhereCommand} git");
$process->run();
if ($process->isSuccessful()) {
$gitPath = $process->getOutput();
}
} else {
$gitPath = $gitBinary;
}
$info['git-version'] = $version;
$info['git-binary-as-called-by-vp'] = $gitBinary;
$info['git-full-path'] = $gitPath;
$info['versionpress-min-required-version'] = RequirementsChecker::GIT_MINIMUM_REQUIRED_VERSION;
$info['matches-min-required-version'] = RequirementsChecker::gitMatchesMinimumRequiredVersion($version);
return $info;
}
示例11: __construct
public function __construct(Nette\Loaders\RobotLoader $robotLoader)
{
$classes = $robotLoader->getIndexedClasses();
foreach ($classes as $class => $file) {
if (class_exists($class)) {
$reflection = new \Nette\Reflection\ClassType($class);
if ($reflection->implementsInterface('Tatami\\Modules\\IModule')) {
if (!($reflection->isAbstract() or $reflection->isInterface())) {
$this->modules[] = $this->parseModuleName($reflection->getShortName());
}
}
if ($reflection->isSubclassOf('Tatami\\Presenters\\BackendPresenter')) {
$moduleName = $this->parseModuleName($reflection->getNamespaceName());
$presenterName = $this->parsePresenterName($reflection->getShortName());
$this->presenters[$moduleName][] = $presenterName;
$methods = $reflection->getMethods(ReflectionMethod::IS_PUBLIC);
foreach ($methods as $method) {
if (Strings::match($method->name, '/action/') or Strings::match($method->name, '/render/')) {
$this->actions[$presenterName][] = $this->parseActionName($method->name);
}
}
}
unset($reflection);
}
}
}
示例12: __construct
/**
* @param string $name
* @param Language $language
*/
public function __construct($name, Language $language)
{
$this->name = $name;
$this->language = $language;
$this->slug = Strings::webalize($name);
$this->scenarios = new ArrayCollection();
}
示例13: getChangeDescription
public function getChangeDescription()
{
if ($this->count === 1) {
return $this->changeInfos[0]->getChangeDescription();
}
return sprintf("%s %d %s", Strings::capitalize(StringUtils::verbToPastTense($this->getAction())), $this->count, StringUtils::pluralize($this->getEntityName()));
}
示例14: getChangeDescription
public function getChangeDescription()
{
if ($this->action === 'activate') {
return "Site language switched to '{$this->languageName}'";
}
return Strings::capitalize(StringUtils::verbToPastTense($this->action)) . " translation '{$this->languageName}'";
}
示例15: formatRecordString
public static function formatRecordString($record, $formatString)
{
return Strings::replace($formatString, '#%[^%]*%#u', function ($m) use($record) {
$m = Strings::trim($m[0], '%');
return $m != '' ? $record[$m] : "%";
});
}