protected function getSkeleton($name) { $skeleton = new Skeleton($this->getSkeletonPath('entity')); $name = S::upperCamelize($name); $skeleton->entity_name = $name; $skeleton->table = Inflector::pluralize(S::replace(S::dasherize($name), '-', '_')); return $skeleton; }
/** * @dataProvider dasherizeProvider() */ public function testDasherize($expected, $str, $encoding = null) { $result = S::dasherize($str, $encoding); $this->assertInternalType('string', $result); $this->assertEquals($expected, $result); }
public function dasherize($string) { return Stringy::dasherize($string); }
/** * 入力をアーカイブ中で妥当な拡張子を除くファイル名に変換します。 * @param string $filenameWithoutExtension 拡張子を除くファイル名。 * @return string 制御文字・空白文字のみで構成されていた場合、ランダムな文字列生成します。 */ public function convertToValidFilenameWithoutExtensionInArchives(string $filenameWithoutExtension) : string { $asciiString = $this->preventWindowsReserved(mb_substr(trim(preg_replace('/[^0-9_a-z]+/u', '-', \Stringy\StaticStringy::dasherize(Transliterator::translateUsingLatinAlphabet(preg_replace('/^\\p{Z}+|\\p{C}+|\\p{Z}+$/u', '', \Normalizer::isNormalized($filenameWithoutExtension) ? $filenameWithoutExtension : \Normalizer::normalize($filenameWithoutExtension))))), '-'), 0, static::MAX_LENGTH)); return $asciiString === '' ? $this->generateRandomFilename() : $asciiString; }